diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index 2e83c238ec0fc0e8b5a10e35c64c0f5c95216a0b..3da3b819b6a89b3c77cfe69e3f6581aa324c0210 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -676,6 +676,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
             throw new IllegalArgumentException("Attempt to replace RI with " + leaseSet);
         }
         
+        // spoof / hash collision detection
+        if (rv != null && !leaseSet.getDestination().equals(rv.getDestination()))
+            throw new IllegalArgumentException("LS Hash collision");
+
         String err = validate(key, leaseSet);
         if (err != null)
             throw new IllegalArgumentException("Invalid store attempt - " + err);
@@ -815,6 +819,10 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
             throw new IllegalArgumentException("Attempt to replace LS with " + routerInfo);
         }
         
+        // spoof / hash collision detection
+        if (rv != null && !routerInfo.getIdentity().equals(rv.getIdentity()))
+            throw new IllegalArgumentException("RI Hash collision");
+
         String err = validate(key, routerInfo);
         if (err != null)
             throw new IllegalArgumentException("Invalid store attempt - " + err);