diff --git a/router/java/src/net/i2p/router/transport/udp/InboundMessageState.java b/router/java/src/net/i2p/router/transport/udp/InboundMessageState.java
index 8405f7a752ce77a66889cc69a366735ad453edea..da42c43e0b6fc34163c5a556084f1c07f786242b 100644
--- a/router/java/src/net/i2p/router/transport/udp/InboundMessageState.java
+++ b/router/java/src/net/i2p/router/transport/udp/InboundMessageState.java
@@ -115,7 +115,7 @@ class InboundMessageState implements CDQEntry {
         if (isLast) {
             if (fragmentNum > MAX_FRAGMENTS)
                 throw new DataFormatException("corrupt - too many fragments: " + fragmentNum);
-            _fragments = new ByteArray[fragmentNum];
+            _fragments = new ByteArray[fragmentNum + 1];
         } else {
             _fragments = new ByteArray[MAX_FRAGMENTS];
         }