diff --git a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
index 73c33ca630c828610122e4b2dac31e0621378939..ed2b56e7af10467db26d5086c4dceafe7ce8bea0 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java
@@ -473,6 +473,11 @@ public class Connection {
                 
                 int numSends = _packet.getNumSends() + 1;
                 
+                // in case things really suck, the other side may have lost thier
+                // session tags (e.g. they restarted), so jump back to ElGamal.
+                if ( (newWindowSize == 1) && (numSends > 2) )
+                    _context.sessionKeyManager().failTags(_remotePeer.getPublicKey());
+                
                 if (_log.shouldLog(Log.WARN))
                     _log.warn("Resend packet " + _packet + " time " + numSends + " (wsize "
                               + newWindowSize + " lifetime "