diff --git a/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java
index ed10b6e2abdf3f60aeb80a1c0b041b717be2f1f2..e528abe2c703f665dae3affa8214c9ea9bec97c0 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java
@@ -105,8 +105,8 @@ class PacketHandler {
                 displayPacket(packet, "RECV", "wsize " + con.getOptions().getWindowSize() + " rto " + con.getOptions().getRTO());
             receiveKnownCon(con, packet);
         } else {
-            receiveUnknownCon(packet, sendId, queueIfNoConn);
             displayPacket(packet, "UNKN", null);
+            receiveUnknownCon(packet, sendId, queueIfNoConn);
         }
         // Don't log here, wait until we have the conn to make the dumps easier to follow
         //((PacketLocal)packet).logTCPDump(true);
@@ -285,6 +285,13 @@ class PacketHandler {
                         return;
                     }
                 }
+            } else {
+                // if it has a send ID, it's almost certainly for a recently removed connection.
+                if (_log.shouldLog(Log.WARN))
+                    _log.warn("Dropping pkt w/ send ID but no con found, recently disconnected? " + packet);
+                // don't bother sending reset
+                packet.releasePayload();
+                return;
             }
             
             if (packet.isFlagSet(Packet.FLAG_SYNCHRONIZE)) {