diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java
index 9836e7c403ca10766359ff243829d5d19190f06f..25f6b1676c13e5aad4635719e2b9cb4b33741ac1 100644
--- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java
+++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java
@@ -125,11 +125,17 @@ public class CryptixAESEngine extends AESEngine {
         }
     }
     
+    /**
+     *  @param iv 16 bytes
+     */
     @Override
     public void decrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int length) {
         decrypt(payload, payloadIndex, out, outIndex, sessionKey, iv, 0, length);
     }
 
+    /**
+     *  @param iv 16 bytes starting at ivOffset
+     */
     @Override
     public void decrypt(byte payload[], int payloadIndex, byte out[], int outIndex, SessionKey sessionKey, byte iv[], int ivOffset, int length) {
         if ((iv== null) || (payload == null) || (payload.length <= 0) || (sessionKey == null) ) 
diff --git a/core/java/src/net/i2p/data/SimpleDataStructure.java b/core/java/src/net/i2p/data/SimpleDataStructure.java
index 0ef2afc7d7b8a969ab16c430fa2ee37dd3fd4c58..2084955b1fc5350ea4f2f6a63c025171f234b1d6 100644
--- a/core/java/src/net/i2p/data/SimpleDataStructure.java
+++ b/core/java/src/net/i2p/data/SimpleDataStructure.java
@@ -69,7 +69,7 @@ public abstract class SimpleDataStructure extends DataStructureImpl {
         if (_data != null)
             throw new RuntimeException("Data already set");
         if (data != null && data.length != _length)
-            throw new IllegalArgumentException("Bad data length");
+            throw new IllegalArgumentException("Bad data length: " + data.length + "; required: " + _length);
         _data = data;
     }
 
@@ -141,7 +141,8 @@ public abstract class SimpleDataStructure extends DataStructureImpl {
     @Override
     public void fromByteArray(byte data[]) throws DataFormatException {
         if (data == null) throw new DataFormatException("Null data passed in");
-        if (data.length != _length) throw new DataFormatException("Bad data length");
+        if (data.length != _length)
+            throw new DataFormatException("Bad data length: " + data.length + "; required: " + _length);
         // call setData() instead of _data = data in case overridden
         setData(data);
     }
diff --git a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
index 2fd0b26c07ff9792ec12f7ff11ab111d5a85bf5c..1c69076a1acbfec601f5cef1ac295fa444e8c73b 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
@@ -47,9 +47,10 @@ class InboundEndpointProcessor {
     public boolean retrievePreprocessedData(byte orig[], int offset, int length, Hash prev) {
         Hash last = _config.getPeer(_config.getLength()-2);
         if (!last.equals(prev)) {
+            // shouldn't happen now that we have good dup ID detection in BuildHandler
             if (_log.shouldLog(Log.ERROR))
-                _log.error("Invalid previous peer - attempted hostile loop?  from " + prev 
-                           + ", expected " + last);
+                _log.error("Attempted IBEP injection from " + prev 
+                               + ", expected " + last);
             return false;
         }