diff --git a/router/java/src/net/i2p/router/tunnelmanager/RequestTunnelJob.java b/router/java/src/net/i2p/router/tunnelmanager/RequestTunnelJob.java
index dd685cb836db2e1cdfc963a87f4fe877932b9da4..86d048a8f0169589ae336aa64bafec82a0131845 100644
--- a/router/java/src/net/i2p/router/tunnelmanager/RequestTunnelJob.java
+++ b/router/java/src/net/i2p/router/tunnelmanager/RequestTunnelJob.java
@@ -82,7 +82,6 @@ public class RequestTunnelJob extends JobImpl {
 
         _pool = pool;
         _tunnelGateway = tunnelGateway;
-        _toBeRequested = new ArrayList();
         _timeoutMs = timeoutMs;
         _expiration = -1;
         _isInbound = isInbound;
@@ -112,8 +111,15 @@ public class RequestTunnelJob extends JobImpl {
 
         // work backwards (end point, then the router pointing at the endpoint, then the router pointing at that, etc, until the gateway
         _toBeRequested = new ArrayList(participants.size());
-        for (int i = participants.size()-1; i >= 0; i--) 
-            _toBeRequested.add(participants.get(i));
+        for (int i = participants.size()-1; i >= 0; i--) {
+            TunnelInfo peer = (TunnelInfo)participants.get(i);
+            if (null != _context.netDb().lookupRouterInfoLocally(peer.getThisHop())) {
+                _toBeRequested.add(participants.get(i));
+            } else {
+                if (_log.shouldLog(Log.WARN))
+                    _log.warn("ok who the fuck requested someone we don't know about? (dont answer that");
+            }
+        }
     }
     
     public String getName() { return "Request Tunnel"; }