diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
index a556c95ffd9c27f17cdb9399a2a96739693508c3..b14b4a223cb5d2120a422b15a7d241b1347d3392 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java
@@ -629,6 +629,10 @@ class ConnectionOptions extends I2PSocketOptionsImpl {
         computeRTO();
     }
     
+    public synchronized boolean receivedAck() {
+        return _initState != AckInit.INIT;
+    }
+    
     /** How long after sending a packet will we wait before resending?
      * @return delay for a retransmission in ms
      */
diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
index 2ac2ba96e5cc3586e3cfba321c224447826ec868..74aa4da5df7327a719dbdef3c5ebb432be39f111 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java
@@ -299,6 +299,7 @@ class ConnectionPacketHandler {
             return false;
         
         boolean lastPacketAcked = false;
+        final boolean receivedAck = con.getOptions().receivedAck();
         if ( (acked != null) && (!acked.isEmpty()) ) {
             if (_log.shouldLog(Log.DEBUG))
                 _log.debug(acked.size() + " of our packets acked with " + packet);
@@ -312,7 +313,7 @@ class ConnectionPacketHandler {
                 final int numSends = p.getNumSends();
                 final int ackTime = p.getAckTime();
                 
-                if (numSends > 1)
+                if (numSends > 1 && receivedAck)
                     numResends++;
                 else if (ackTime > highestRTT) 
                     highestRTT = ackTime;