From: Rusty Russell Yep, culprit is obvious stupid bug. This indicates a serious lack of testing on my part 8( net/ipv4/netfilter/ip_nat_core.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN net/ipv4/netfilter/ip_nat_core.c~netfilter-skbuff-fix net/ipv4/netfilter/ip_nat_core.c --- 25/net/ipv4/netfilter/ip_nat_core.c~netfilter-skbuff-fix 2003-05-07 18:42:43.000000000 -0700 +++ 25-akpm/net/ipv4/netfilter/ip_nat_core.c 2003-05-07 18:42:43.000000000 -0700 @@ -870,7 +870,8 @@ icmp_reply_translation(struct sk_buff ** adjustment, so make sure the current checksum is correct. */ if ((*pskb)->ip_summed != CHECKSUM_UNNECESSARY && (u16)csum_fold(skb_checksum(*pskb, (*pskb)->nh.iph->ihl*4, - (*pskb)->len, 0))) + (*pskb)->len + - (*pskb)->nh.iph->ihl*4, 0))) return 0; /* Must be RELATED */ _