diff --git a/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java b/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java
index ee3e3d3bf06653b5a84e945ded037b48d606de4d..cfd0d414d0636c961f2657bb8cfd3061f6251fd5 100644
--- a/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java
+++ b/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java
@@ -16,15 +16,20 @@ import net.i2p.data.Hash;
 import net.i2p.util.SimpleByteCache;
 
 /**
- * This is the same as DataMessage but with a variable message type.
+ * This is similar to DataMessage or GarlicMessage but with a variable message type.
  * This is defined so routers can route messages they don't know about.
- * We don't extend DataMessage so that any code that does (instanceof DataMessage)
+ * We don't extend those classes so that any code that does (instanceof foo)
  * won't return true for this type. Load tests use DataMessage, for example.
+ * Also, those classes include an additional length field that we can't use here.
  * See InboundMessageDistributor.
  *
  * There is no setData() method, the only way to create one of these is to
  * read it with readMessage() (i.e., it came from some other router)
  *
+ * As of 0.8.12 this class is working. It is used at the IBGW to reduce the processing
+ * required. For zero-hop IB tunnels, the convert() method is used to reconstitute
+ * a standard message class.
+ *
  * @since 0.7.12 but broken before 0.8.12
  */
 public class UnknownI2NPMessage extends I2NPMessageImpl {
@@ -64,7 +69,12 @@ public class UnknownI2NPMessage extends I2NPMessageImpl {
         return curIndex;
     }
     
-    /** @return 0-255 */
+    /**
+     *  Note that this returns the "true" type, so that
+     *  the IBGW can correctly make drop decisions.
+     *
+     *  @return 0-255
+     */
     public int getType() { return _type; }
     
 
@@ -85,7 +95,6 @@ public class UnknownI2NPMessage extends I2NPMessageImpl {
      *</pre>
      *
      *  @param offset starting at the ID (must skip the type)
-     *  @return total length of the message
      *  @since 0.8.12
      */
     public void readBytesIgnoreChecksum(byte data[], int offset) throws I2NPMessageException, IOException {