diff --git a/core/java/src/net/i2p/client/naming/EepGetNamingService.java b/core/java/src/net/i2p/client/naming/EepGetNamingService.java
index 99aae007c8fda7271a1fabd7038213f0971a945a..057f3d4f68db49d13e3458fc4386cfb4ef87e651 100644
--- a/core/java/src/net/i2p/client/naming/EepGetNamingService.java
+++ b/core/java/src/net/i2p/client/naming/EepGetNamingService.java
@@ -63,6 +63,10 @@ public class EepGetNamingService extends NamingService {
     }
         
     public Destination lookup(String hostname) {
+        // If it's long, assume it's a key.
+        if (hostname.length() >= DEST_SIZE)
+            return lookupBase64(hostname);
+
         hostname = hostname.toLowerCase();
 
         // check the cache
@@ -95,10 +99,7 @@ public class EepGetNamingService extends NamingService {
                 return lookupBase64(key);
             }
         }
-
-        // If we can't find name,
-        // assume it's a key.
-        return lookupBase64(hostname);
+        return null;
     }
 
     private static final int DEST_SIZE = 516;                    // Std. Base64 length (no certificate)
diff --git a/core/java/src/net/i2p/client/naming/ExecNamingService.java b/core/java/src/net/i2p/client/naming/ExecNamingService.java
index 19e94dfca6a8a13bc443e2dc07d190406e0d6f42..8d76f50fd8cd76b2dc07495dc88ccaa4aca454f5 100644
--- a/core/java/src/net/i2p/client/naming/ExecNamingService.java
+++ b/core/java/src/net/i2p/client/naming/ExecNamingService.java
@@ -64,6 +64,10 @@ public class ExecNamingService extends NamingService {
     }
         
     public Destination lookup(String hostname) {
+        // If it's long, assume it's a key.
+        if (hostname.length() >= DEST_SIZE)
+            return lookupBase64(hostname);
+
         hostname = hostname.toLowerCase();
 
         // check the cache
@@ -80,10 +84,7 @@ public class ExecNamingService extends NamingService {
             _hosts.setProperty(hostname, key);  // cache
             return lookupBase64(key);
         }
-
-        // If we can't find name, 
-        // assume it's a key.
-        return lookupBase64(hostname);
+        return null;
     }
 
     private static final int DEST_SIZE = 516;                    // Std. Base64 length (no certificate)
diff --git a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
index 20a59121e12920c0c29371d51ecaa88318a369e5..696fe1479b30b73418502bb92e797db2b22f0b4a 100644
--- a/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
+++ b/core/java/src/net/i2p/client/naming/HostsTxtNamingService.java
@@ -54,6 +54,10 @@ public class HostsTxtNamingService extends NamingService {
     }
         
     public Destination lookup(String hostname) {
+        // If it's long, assume it's a key.
+        if (hostname.length() >= 516)
+            return lookupBase64(hostname);
+
         // check the list each time, reloading the file on each
         // lookup
         
@@ -79,12 +83,10 @@ public class HostsTxtNamingService extends NamingService {
             }
             // not found, continue to the next file
         }
-        // If we can't find name in any of the hosts files, 
-        // assume it's a key.
-        return lookupBase64(hostname);
+        return null;
     }
 
     public String reverseLookup(Destination dest) {
         return null;
     }
-}
\ No newline at end of file
+}