diff -urpN --exclude-from=/home/davej/.exclude bk-linus/net/ipv4/tcp.c linux-2.5/net/ipv4/tcp.c --- bk-linus/net/ipv4/tcp.c 2002-11-21 02:25:02.000000000 +0000 +++ linux-2.5/net/ipv4/tcp.c 2002-11-21 18:05:35.000000000 +0000 @@ -1190,7 +1190,8 @@ new_segment: from += copy; copied += copy; - seglen -= copy; + if ((seglen -= copy) == 0 && iovlen == 0) + goto out; if (skb->len != mss_now || (flags & MSG_OOB)) continue;