diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
index 056f6a607a1250bf030a163eab5076ff7baeaa3f..4ed44388c054210bc111bf7e266cc24e5db7898c 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillMonitorJob.java
@@ -34,7 +34,7 @@ class FloodfillMonitorJob extends JobImpl {
 
     private static final int MIN_FF = 5000;
     private static final int MAX_FF = 999999;
-    private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
+    static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
     
     public FloodfillMonitorJob(RouterContext context, FloodfillNetworkDatabaseFacade facade) {
         super(context);
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
index ab41b7166d20f9a190fd7a0f7c7bffabf726c5b9..a02013a5f82fe1049ab39617f6dd6f9c09c278e7 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillNetworkDatabaseFacade.java
@@ -94,7 +94,11 @@ public class FloodfillNetworkDatabaseFacade extends KademliaNetworkDatabaseFacad
      */
     @Override
     public synchronized void shutdown() {
-        if (_floodfillEnabled) {
+        // only if not forced ff or not restarting
+        if (_floodfillEnabled &&
+            (!_context.getBooleanProperty(FloodfillMonitorJob.PROP_FLOODFILL_PARTICIPANT) ||
+             !(_context.router().scheduledGracefulExitCode() == Router.EXIT_HARD_RESTART ||
+               _context.router().scheduledGracefulExitCode() == Router.EXIT_GRACEFUL_RESTART))) {
             // turn off to build a new RI...
             _floodfillEnabled = false;
             // true -> publish inline