diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java
index aa75fddfc45f602ccfa9ce4c9776503f8d71f657..4fb885003974fb26111da0251c9bc2e63078b362 100644
--- a/router/java/src/net/i2p/router/transport/UPnP.java
+++ b/router/java/src/net/i2p/router/transport/UPnP.java
@@ -288,10 +288,15 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis
 					boolean v61 = ip.contains(":");
 					boolean v62 = pktIP.contains(":");
 					if (v61 == v62) {
-						ignore = true;
-						if (_log.shouldWarn())
-							_log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn +
-							          " dev IP " + ip + " pkt IP: " + pktIP);
+						// canonicalize
+						byte[] b1 = Addresses.getIP(ip);
+						byte[] b2 = Addresses.getIP(pktIP);
+						if (!DataHelper.eq(b1, b2)) {
+							ignore = true;
+							if (_log.shouldWarn())
+								_log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn +
+								          " dev IP " + ip + " pkt IP: " + pktIP);
+						}
 					}
 				}
 			}