--- zzzz-none-000/linux-2.6.32.61/net/ipv4/tcp_timer.c 2013-06-10 09:43:48.000000000 +0000 +++ virian-300e-630/linux-2.6.32.61/net/ipv4/tcp_timer.c 2011-05-25 13:51:48.000000000 +0000 @@ -496,7 +496,7 @@ elapsed = keepalive_time_when(tp); /* It is alive without keepalive 8) */ - if (tp->packets_out || tcp_send_head(sk)) + if (icsk->icsk_retransmits == 0 && (tp->packets_out || tcp_send_head(sk))) goto resched; elapsed = tcp_time_stamp - tp->rcv_tstamp;