diff --git a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
index 85e22bdd92eb69be6ddb361dcb94b8edb88fa48b..5ad8c64c0e3572dba8b82fddedce5268142678bc 100644
--- a/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
+++ b/router/java/src/net/i2p/router/peermanager/ProfileOrganizer.java
@@ -1025,15 +1025,15 @@ public class ProfileOrganizer {
             
             _notFailingPeers.put(profile.getPeer(), profile);
             _notFailingPeersList.add(profile.getPeer());
-            if (_thresholdCapacityValue <= profile.getCapacityValue()) { 
+            // if not selectable for a tunnel (shitlisted for example),
+            // don't allow them in the high-cap pool, what would the point of that be?
+            if (_thresholdCapacityValue <= profile.getCapacityValue() &&
+                isSelectable(profile.getPeer())) {
                 _highCapacityPeers.put(profile.getPeer(), profile);
                 if (_log.shouldLog(Log.DEBUG))
                     _log.debug("High capacity: \t" + profile.getPeer().toBase64());
                 if (_thresholdSpeedValue <= profile.getSpeedValue()) {
-                    if (!isSelectable(profile.getPeer())) {
-                        if (_log.shouldLog(Log.INFO))
-                            _log.info("Skipping fast mark [!ok] for " + profile.getPeer().toBase64());
-                    } else if (!profile.getIsActive()) {
+                    if (!profile.getIsActive()) {
                         if (_log.shouldLog(Log.INFO))
                             _log.info("Skipping fast mark [!active] for " + profile.getPeer().toBase64());
                     } else {