diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java
index 36673e43ae5c980dfc5b646d1ce78419f20a34d2..acdfe79964b062b5ab0ecc0d60589900b92d133a 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketImpl.java
@@ -242,7 +242,12 @@ class I2PSocketImpl implements I2PSocket {
         }
 
         public synchronized void notifyClosed() {
-            notifyAll();
+            I2PInputStream.this.notifyAll();
+        }
+        
+        public void close() throws IOException {
+            super.close();
+            notifyClosed();
         }
 
     }
diff --git a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
index 821ac3f9e31b5d0263cdbd5d1e44ee8f9cfe1af6..08c972ba6001ded3f77326691d1b0263134f7376 100644
--- a/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
+++ b/apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketManager.java
@@ -322,8 +322,10 @@ public class I2PSocketManager implements I2PSessionListener {
                 s.internalClose();
                 return;
             } else {
-                if ( (payload.length > 0) && (_log.shouldLog(Log.WARN)) )
-                    _log.warn("Disconnect packet had " + payload.length + " bytes");
+                if ( (payload.length > 0) && (_log.shouldLog(Log.ERROR)) )
+                    _log.error("Disconnect packet had " + payload.length + " bytes");
+                if (s != null) 
+                    s.internalClose();
                 return;
             }
         } catch (Exception t) {