diff --git a/router/java/src/net/i2p/router/tunnel/pool/TestJob.java b/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
index 8b2332f37ad52f81eeaa6dcdb54636acfb575b09..b81178bdf75b8baf81ff43a2c075361552bef69d 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/TestJob.java
@@ -212,7 +212,11 @@ class TestJob extends JobImpl {
         // Minimum is 7.5s (since a 0-hop could be the expl. tunnel, but only >= 1-hop client tunnels are tested)
         // Network average for success is about 1.5s.
         // Another possibility - make configurable via pool options
-        return 2500 * (_outTunnel.getLength() + _replyTunnel.getLength());
+        //
+        // Try to prevent congestion collapse (failing all our tunnels and then clogging our outbound
+        // with new tunnel build requests) by adding in three times the average outbound delay.
+        int delay = 3 * (int) getContext().statManager().getRate("transport.sendProcessingTime").getRate(60*1000).getAverageValue();
+        return delay + (2500 * (_outTunnel.getLength() + _replyTunnel.getLength()));
     }
 
     private void scheduleRetest() { scheduleRetest(false); }