diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java
index 378cd8758c94dbed20080b2fc6e2fd40c1ffe4b0..2fa597ce5135c0c78ee367b0abdfc37c0a5dc347 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java
@@ -152,7 +152,16 @@ class PeerState
         // XXX - Check for weird bitfield and disconnect?
         bitfield = new BitField(bitmap, metainfo.getPieces());
       }
-    setInteresting(listener.gotBitField(peer, bitfield));
+    boolean interest = listener.gotBitField(peer, bitfield);
+    setInteresting(interest);
+    if (bitfield.complete() && !interest) {
+        // They are seeding and we are seeding,
+        // why did they contact us? (robert)
+        // Dump them quick before we send our whole bitmap
+        if (_log.shouldLog(Log.WARN))
+            _log.warn("Disconnecting seed that connects to seeds" + peer);
+        peer.disconnect(true);
+    }
   }
 
   void requestMessage(int piece, int begin, int length)