diff -urN linux-2.6.6/net/ipv6/route.c linux-2.6.6.pmtu/net/ipv6/route.c --- linux-2.6.6/net/ipv6/route.c 2004-05-09 19:33:05.000000000 -0700 +++ linux-2.6.6.pmtu/net/ipv6/route.c 2004-05-26 13:15:28.288796272 -0700 @@ -554,6 +554,8 @@ if (mtu < dst_pmtu(dst) && rt6->rt6i_dst.plen == 128) { rt6->rt6i_flags |= RTF_MODIFIED; + if (mtu < IPV6_MIN_MTU) + mtu = IPV6_MIN_MTU; dst->metrics[RTAX_MTU-1] = mtu; } } diff -urN linux-2.6.6/net/ipv6/xfrm6_policy.c linux-2.6.6.pmtu/net/ipv6/xfrm6_policy.c --- linux-2.6.6/net/ipv6/xfrm6_policy.c 2004-05-09 19:32:26.000000000 -0700 +++ linux-2.6.6.pmtu/net/ipv6/xfrm6_policy.c 2004-05-26 13:15:28.322791104 -0700 @@ -236,10 +236,10 @@ { struct dst_entry *path = dst->path; - if (mtu >= 1280 && mtu < dst_pmtu(dst)) - return; - - path->ops->update_pmtu(path, mtu); + if (mtu >= IPV6_MIN_MTU && mtu < dst_pmtu(dst)) + path->ops->update_pmtu(path, mtu); + + return; } struct dst_ops xfrm6_dst_ops = {