diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
index 85fcd595b8c702226e525ee181c99ab6a06abce9..5951ce1e2d4573212fc4bab9eb3e189aea11c8ba 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/web/IndexBean.java
@@ -420,13 +420,23 @@ public class IndexBean {
                        ": " + port + "</font>";
             // dup check, O(n**2)
             List<TunnelController> controllers = _group.getControllers();
+            String ifc = tun.getListenOnInterface();
             for (int i = 0; i < controllers.size(); i++) {
                 if (i == tunnel)
                     continue;
-                if (port.equals(controllers.get(i).getListenPort()))
-                    return "<font color=\"red\">" +
-                           _t("Warning - duplicate port") +
-                           ": " + port + "</font>";
+                TunnelController tc = controllers.get(i);
+                if (port.equals(tc.getListenPort())) {
+                    String ifc2 = tc.getListenOnInterface();
+                    if (DataHelper.eq(ifc, ifc2) ||
+                        "0.0.0.0".equals(ifc) ||
+                        "0.0.0.0".equals(ifc2) ||
+                        "0:0:0:0:0:0:0:0".equals(ifc) ||
+                        "0:0:0:0:0:0:0:0".equals(ifc2)) {
+                        return "<font color=\"red\">" +
+                               _t("Warning - duplicate port") +
+                               ": " + port + "</font>";
+                    }
+                }
             }
             return port;
         }