diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java
index c9bace8aa7487e162bbe98fdc2029eafc860f33b..74ae27d02dda23a524eaa291b6d6aceaf1aad131 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FilterDefinitionElement.java
@@ -33,9 +33,14 @@ abstract class FilterDefinitionElement {
      * Utility method to create a Hash object from a .b32 string
      */
     protected static Hash fromBase32(String b32) throws InvalidDefinitionException {
+        if (b32.length() != 60)
+            throw new InvalidDefinitionException("Invalid b32 " + b32);
         if (!b32.endsWith(".b32.i2p"))
             throw new InvalidDefinitionException("Invalid b32 " + b32);
-        b32 = b32.substring(0, b32.length() - 8);
-        return new Hash(Base32.decode(b32));
+        String s = b32.substring(0, 52);
+        byte[] b = Base32.decode(s);
+        if (b == null)
+            throw new InvalidDefinitionException("Invalid b32 " + b32);
+        return Hash.create(b);
     }
 }