diff --git a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java
index c4e8e8d1b1b0cfe980f89aca56080e8e1426c007..51d3a304c907f4c5f91e3ff21b604d650f72b495 100644
--- a/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java
+++ b/router/java/src/net/i2p/router/client/RequestLeaseSetJob.java
@@ -54,7 +54,14 @@ class RequestLeaseSetJob extends JobImpl {
         if (_runner.isDead()) return;
         
         RequestLeaseSetMessage msg = new RequestLeaseSetMessage();
-        Date end = new Date(_requestState.getRequested().getEarliestLeaseDate());
+        long endTime = _requestState.getRequested().getEarliestLeaseDate();
+        // Add a small number of ms (0-300) that increases as we approach the expire time.
+        // Since the earliest date functions as a version number,
+        // this will force the floodfill to flood each new version;
+        // otherwise it won't if the earliest time hasn't changed.
+        long fudge = 300 - ((endTime - getContext().clock().now()) / 2000);
+        endTime += fudge;
+        Date end = new Date(endTime);
 
         msg.setEndDate(end);
         msg.setSessionId(_runner.getSessionId());