diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java
index 31875a4f3e6c566981a37d253f0e3812a9b339e6..7b7a0a59d8776086031a6754bebd3671a1fc84a5 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/MessageInputStream.java
@@ -124,8 +124,6 @@ class MessageInputStream extends InputStream {
     public boolean canAccept(long messageId, int payloadSize) { 
         if (payloadSize <= 0)
             return true;
-        if (messageId < MIN_READY_BUFFERS)
-            return true;
         synchronized (_dataLock) {
             // ready dup check
             // we always allow sequence numbers less than or equal to highest received
@@ -136,6 +134,8 @@ class MessageInputStream extends InputStream {
                 // return true if a not-ready dup, false if not
                 return _notYetReadyBlocks.containsKey(Long.valueOf(messageId));
             }
+            if (messageId < MIN_READY_BUFFERS)
+                return true;
             // shortcut test, assuming all ready and not ready blocks are max size,
             // to avoid iterating through all the ready blocks in getTotalReadySize()
             if ((_readyDataBlocks.size() + _notYetReadyBlocks.size()) * _maxMessageSize < _maxBufferSize)