diff --git a/router/java/src/net/i2p/router/transport/TransportUtil.java b/router/java/src/net/i2p/router/transport/TransportUtil.java
index a37e2d54299b9e64cd4b75de3dd89af79f2e4ae7..12bd153d47a18b1d0af46a8061fe681c3abab0da 100644
--- a/router/java/src/net/i2p/router/transport/TransportUtil.java
+++ b/router/java/src/net/i2p/router/transport/TransportUtil.java
@@ -130,6 +130,9 @@ public abstract class TransportUtil {
                 // not recognized as local by InetAddress
                 if ((addr[0] & 0xfe) == 0xfc)
                     return false;
+                // disallow 2001:0::/32 (Teredo RFC 4380)
+                if (addr[0] == 0x20 && addr[1] == 0x01 && addr[2] == 0x00 && addr[3] == 0x00)
+                    return false;
                 try {
                     InetAddress ia = InetAddress.getByAddress(addr);
                     return