diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java
index 11f0fff86f0e44b3591b9c8b62061877a62da121..b87c7af3af4b0a69720354ec11988dc4309066c7 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/PeerCoordinator.java
@@ -342,6 +342,11 @@ public class PeerCoordinator implements PeerListener
   private int getMaxConnections() {
     if (metainfo == null)
         return 6;
+    int pieces = metainfo.getPieces();
+    if (pieces <= 2)
+        return 4;
+    if (pieces <= 5)
+        return 6;
     int size = metainfo.getPieceLength(0);
     int max = _util.getMaxConnections();
     if (size <= 512*1024 || completed())