diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
index 9dcf1e5e8a83394a215475a1735228246fd9c0aa..10835207e5bcfac41476fd159b93d0491fa6b63c 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/BuildHandler.java
@@ -460,6 +460,7 @@ class BuildHandler {
         return 0;
     }
     
+    private static final String PROP_REJECT_NONPARTICIPANT = "router.participantOnly";
     private void handleReq(RouterInfo nextPeerInfo, BuildMessageState state, BuildRequestRecord req, Hash nextPeer) {
         long ourId = req.readReceiveTunnelId();
         long nextId = req.readNextTunnelId();
@@ -497,6 +498,11 @@ class BuildHandler {
             }
         }
         
+        if (response == 0 && (isInGW || isOutEnd) &&
+            Boolean.valueOf(_context.getProperty(PROP_REJECT_NONPARTICIPANT))) {
+                response = TunnelHistory.TUNNEL_REJECT_BANDWIDTH;
+        }
+
         if (_log.shouldLog(Log.DEBUG))
             _log.debug("Responding to " + state.msg.getUniqueId() + "/" + ourId
                        + " after " + recvDelay + "/" + proactiveDrops + " with " + response