diff -ur kernel-2.6.28.orig/net/ipv4/netfilter/iphb.c kernel-2.6.28/net/ipv4/netfilter/iphb.c --- kernel-2.6.28.orig/net/ipv4/netfilter/iphb.c 2010-01-19 06:32:06.000000000 +0100 +++ kernel-2.6.28/net/ipv4/netfilter/iphb.c 2010-01-29 19:32:34.000000000 +0100 @@ -276,6 +276,11 @@ tsk = tcp_sk(skb->sk); tcp = tcp_hdr(skb); + if (! tcp || ! tsk) { + flush_keepalives(1); + return NF_ACCEPT; + } + len -= hlen; /* ip4/6 header len */ len -= tcp->doff << 2; /* tcp header + options */