diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java
index 33c8adfe48de0463e0216a2716d6753bbd610afc..f14686e5620d1f52378e34c50e450a0f754666c3 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl.java
@@ -447,7 +447,6 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
         if (_closed) return;
         
         if (_log.shouldLog(Log.DEBUG)) _log.debug("Destroy the session", new Exception("DestroySession()"));
-        _closed = true;
         if (sendDisconnect) {
             try {
                 _producer.disconnect(this);
@@ -455,6 +454,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
                 propogateError("Error destroying the session", ipe);
             }
         }
+        _closed = true;
         closeSocket();
         if (_sessionListener != null) _sessionListener.disconnected(this);
     }