diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java
index a094daae0e55b83a6b2062cf1cf6fbc2b79f9389..b7d9741fedacf836b356ee7fcb7b821b963910a1 100644
--- a/core/java/src/net/i2p/client/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/I2PSessionImpl.java
@@ -68,7 +68,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
     /** this session's Id */
     private SessionId _sessionId;
     /** currently granted lease set, or null */
-    private LeaseSet _leaseSet;
+    private volatile LeaseSet _leaseSet;
 
     /** hostname of router - will be null if in RouterContext */
     protected String _hostname;
@@ -101,7 +101,7 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
     /** hashes of lookups we are waiting for */
     protected final LinkedBlockingQueue<LookupWaiter> _pendingLookups = new LinkedBlockingQueue();
     protected final Object _bwReceivedLock = new Object();
-    protected int[] _bwLimits;
+    protected volatile int[] _bwLimits;
     
     protected I2PClientMessageHandlerMap _handlerMap;