diff --git a/router/java/src/net/i2p/router/transport/udp/UDPSender.java b/router/java/src/net/i2p/router/transport/udp/UDPSender.java
index 1c1310bd658a3c18525bd4be45fa2d9f2ca81ff5..9776bfcff0412a1082238bd8c6114f2623e3676b 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPSender.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPSender.java
@@ -193,7 +193,8 @@ class UDPSender {
     public void add(UDPPacket packet) {
         if (packet == null || !_keepRunning) return;
         int psz = packet.getPacket().getLength();
-        if (psz > PeerState2.MAX_MTU) {
+        // minus IP header and UDP header, assume IPv4, this is just a quick check
+        if (psz > PeerState2.MAX_MTU - 28) {
             _log.error("Dropping large UDP packet " + psz + " bytes: " + packet, new Exception());
             return;
         }