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 dd449949b78d87a76ae482dc1678941640c61cd7..ce6007bb4b74903fcb80fb411f921d5fe134d611 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java
@@ -212,7 +212,7 @@ public abstract class TunnelPeerSelector {
             if (caps != null)
                 peers.addAll(caps);
         }
-        if (filterSlow(ctx, isInbound, isExploratory)) {
+        if (filterSlow(isInbound, isExploratory)) {
             // NOTE: filterSlow always returns true
             Log log = ctx.logManager().getLog(TunnelPeerSelector.class);
             char excl[] = getExcludeCaps(ctx);
@@ -434,34 +434,28 @@ public abstract class TunnelPeerSelector {
     private static final String PROP_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = "router.inboundExploratoryExcludeUnreachable";
     private static final String PROP_INBOUND_CLIENT_EXCLUDE_UNREACHABLE = "router.inboundClientExcludeUnreachable";
     
-    private static final String DEFAULT_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = "false";
-    private static final String DEFAULT_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE = "false";
+    private static final boolean DEFAULT_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = false;
+    private static final boolean DEFAULT_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE = false;
     // see comments at getExclude() above
-    private static final String DEFAULT_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = "true";
-    private static final String DEFAULT_INBOUND_CLIENT_EXCLUDE_UNREACHABLE = "true";
+    private static final boolean DEFAULT_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE = true;
+    private static final boolean DEFAULT_INBOUND_CLIENT_EXCLUDE_UNREACHABLE = true;
     
     /**
      * do we want to skip peers who haven't been up for long?
      * @return true for inbound, false for outbound, unless configured otherwise
      */
     protected boolean filterUnreachable(boolean isInbound, boolean isExploratory) {
-        boolean def = false;
-        String val = null;
-        
-        if (isExploratory)
+        if (isExploratory) {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE, DEFAULT_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE);
+                return ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE, DEFAULT_INBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE);
             else
-                val = ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE, DEFAULT_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE);
-        else
+                return ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE, DEFAULT_OUTBOUND_EXPLORATORY_EXCLUDE_UNREACHABLE);
+        } else {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_UNREACHABLE, DEFAULT_INBOUND_CLIENT_EXCLUDE_UNREACHABLE);
+                return ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_UNREACHABLE, DEFAULT_INBOUND_CLIENT_EXCLUDE_UNREACHABLE);
             else 
-                val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE, DEFAULT_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE);
-        
-        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
-        //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
-        return rv;
+                return ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE, DEFAULT_OUTBOUND_CLIENT_EXCLUDE_UNREACHABLE);
+        }
     }
 
     
@@ -474,56 +468,50 @@ public abstract class TunnelPeerSelector {
      * do we want to skip peers that are slow?
      * @return true unless configured otherwise
      */
-    protected boolean filterSlow(RouterContext ctx, boolean isInbound, boolean isExploratory) {
-        boolean def = true;
-        String val = null;
-        
-        if (isExploratory)
+    protected boolean filterSlow(boolean isInbound, boolean isExploratory) {
+        if (isExploratory) {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_SLOW);
+                return ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_SLOW, true);
             else
-                val = ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_SLOW);
-        else
+                return ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_SLOW, true);
+        } else {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_SLOW);
+                return ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_SLOW, true);
             else 
-                val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_SLOW);
-        
-        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
-        //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
-        return rv;
+                return ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_SLOW, true);
+        }        
     }
     
+/****
     private static final String PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UPTIME = "router.outboundExploratoryExcludeUptime";
     private static final String PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME = "router.outboundClientExcludeUptime";
     private static final String PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME = "router.inboundExploratoryExcludeUptime";
     private static final String PROP_INBOUND_CLIENT_EXCLUDE_UPTIME = "router.inboundClientExcludeUptime";
+****/
     
     /**
      * do we want to skip peers who haven't been up for long?
      * @return true unless configured otherwise
      */
-    protected boolean filterUptime(RouterContext ctx, boolean isInbound, boolean isExploratory) {
-        boolean def = true;
-        String val = null;
-        
-        if (isExploratory)
+/****
+    protected boolean filterUptime(boolean isInbound, boolean isExploratory) {
+        if (isExploratory) {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME);
+                return ctx.getProperty(PROP_INBOUND_EXPLORATORY_EXCLUDE_UPTIME, true);
             else
-                val = ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UPTIME);
-        else
+                return ctx.getProperty(PROP_OUTBOUND_EXPLORATORY_EXCLUDE_UPTIME, true);
+        } else {
             if (isInbound)
-                val = ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_UPTIME);
+                return ctx.getProperty(PROP_INBOUND_CLIENT_EXCLUDE_UPTIME, true);
             else 
-                val = ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME);
-        
-        boolean rv = (val != null ? Boolean.parseBoolean(val) : def);
-        //System.err.println("Filter unreachable? " + rv + " (inbound? " + isInbound + ", exploratory? " + isExploratory);
-        return rv;
+                return ctx.getProperty(PROP_OUTBOUND_CLIENT_EXCLUDE_UPTIME, true);
+        }
     }
+****/
 
+    /** see HashComparator */
     protected void orderPeers(List rv, Hash hash) {
+        if (rv.size() > 1)
             Collections.sort(rv, new HashComparator(hash));
     }