diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java
index 47850b429c0b8c2557ba83f0b71718372b97b7dd..00e2c0ba459c86515e6d98f0170ae1b095c7500b 100644
--- a/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java
+++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java
@@ -792,7 +792,7 @@ class Packet {
         
         int size = writtenSize();
         
-        if (buffer == null)
+        if (buffer == null || size > buffer.length)
             buffer = new byte[size];
         if (isFlagSet(FLAG_SIGNATURE_OFFLINE)) {
             if (_transientExpires < ctx.clock().now()) {