--- linux-2.6.13.2/net/ipv6/ip6_output.c 2005-09-17 09:02:12.000000000 +0800 +++ linux/net/ipv6/ip6_output.c 2005-10-02 22:12:54.000000000 +0800 @@ -701,7 +701,7 @@ */ fh->nexthdr = nexthdr; fh->reserved = 0; - if (frag_id) { + if (!frag_id) { ipv6_select_ident(skb, fh); frag_id = fh->identification; } else