diff --git a/router/java/src/net/i2p/router/sybil/Analysis.java b/router/java/src/net/i2p/router/sybil/Analysis.java
index fc826406b8f00c7be2ee56da65cdf684bb6e07a3..c3f86ae190b8770a79103782df240855936175f0 100644
--- a/router/java/src/net/i2p/router/sybil/Analysis.java
+++ b/router/java/src/net/i2p/router/sybil/Analysis.java
@@ -96,7 +96,8 @@ public class Analysis extends JobImpl implements RouterApp {
     public static final boolean DEFAULT_BLOCK = true;
     public static final double DEFAULT_BLOCK_THRESHOLD = 50.0;
     public static final long DEFAULT_BLOCK_TIME = 7*24*60*60*1000L;
-    public static final long DEFAULT_REMOVE_TIME = 30*24*60*60*1000L;
+    public static final long DEFAULT_REMOVE_TIME = 10*24*60*60*1000L;
+    public static final long SHORT_REMOVE_TIME = 2*24*60*60*1000L;
     public static final long DEFAULT_FREQUENCY = 24*60*60*1000L;
     public static final float MIN_BLOCK_POINTS = 12.01f;
 
diff --git a/router/java/src/net/i2p/router/sybil/PersistSybil.java b/router/java/src/net/i2p/router/sybil/PersistSybil.java
index a79d1a0e8428aeca0712d343649f6b19964e3af8..fb97013ad421148601d405ee2e45f02f2bf3d92a 100644
--- a/router/java/src/net/i2p/router/sybil/PersistSybil.java
+++ b/router/java/src/net/i2p/router/sybil/PersistSybil.java
@@ -19,6 +19,8 @@ import java.util.zip.GZIPInputStream;
 import java.util.zip.GZIPOutputStream;
 
 import net.i2p.I2PAppContext;
+import net.i2p.app.ClientApp;
+import net.i2p.app.ClientAppManager;
 import net.i2p.data.Base64;
 import net.i2p.data.DataFormatException;
 import net.i2p.data.DataHelper;
@@ -179,7 +181,18 @@ public class PersistSybil {
      *  @since 0.9.41
      */
     public synchronized void removeOld() {
-        long age = _context.getProperty(Analysis.PROP_REMOVETIME, Analysis.DEFAULT_REMOVE_TIME);
+        // if we don't have a console, don't keep too many
+        long removeTime = Analysis.SHORT_REMOVE_TIME;
+        ClientAppManager cmgr = _context.clientAppManager();
+        if (cmgr != null) {
+            ClientApp console = cmgr.getRegisteredApp("console");
+            if (console != null)
+                removeTime = Analysis.DEFAULT_REMOVE_TIME;
+        }
+        long age = _context.getProperty(Analysis.PROP_REMOVETIME, removeTime);
+        long freq2 = 2 * _context.getProperty(Analysis.PROP_FREQUENCY, Analysis.DEFAULT_FREQUENCY);
+        if (age < freq2)
+            age = freq2;
         if (age < 60*1000)
             return;
         long cutoff = _context.clock().now() - age;