diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
index 660324deed260afe4850a3c95fdcd3a772be6f19..e759441d943ce96f45f80f58e86028cf6e4dcf93 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
@@ -477,6 +477,25 @@ public class ProfileOrganizer {
         return l;
     }
 
+    /**
+     * Get the peers that have recently rejected us for bandwidth
+     * recent == last 20s
+     *
+     */
+    public List selectPeersRecentlyRejecting() { 
+        synchronized (_reorganizeLock) {
+            long cutoff = _context.clock().now() - (20*1000);
+            int count = _notFailingPeers.size();
+            List l = new ArrayList(count / 128);
+            for (Iterator iter = _notFailingPeers.values().iterator(); iter.hasNext(); ) {
+                PeerProfile prof = (PeerProfile) iter.next();
+                if (prof.getTunnelHistory().getLastRejectedBandwidth() > cutoff)
+                    l.add(prof.getPeer());
+            }
+            return l;
+        }
+    }
+
     /**
      * Find the hashes for all peers we are actively profiling
      *
diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
index beb52ca41adc0515de73f300d4e93e6413f562d7..2bd6ee7aa80c81bdb392796d34f6de7f34f80dcc 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
@@ -176,6 +176,7 @@ public abstract class TunnelPeerSelector {
         // Defaults changed to true for inbound only in filterUnreachable below.
 
         Set peers = new HashSet(1);
+        peers.addAll(ctx.profileOrganizer().selectPeersRecentlyRejecting());
         // if (false && filterUnreachable(ctx, isInbound, isExploratory)) {
         if (filterUnreachable(ctx, isInbound, isExploratory)) {
             List caps = ctx.peerManager().getPeersByCapability(Router.CAPABILITY_UNREACHABLE);