Index: sys/netinet/tcp_output.c =================================================================== --- sys/netinet/tcp_output.c +++ sys/netinet/tcp_output.c @@ -1237,8 +1237,11 @@ if (flags & TH_SYN) th->th_win = htons((u_short) (min(sbspace(&so->so_rcv), TCP_MAXWIN))); - else + else { th->th_win = htons((u_short)(recwin >> tp->rcv_scale)); + if ((th->th_win == 0) && (recwin > 0)) + th->th_win = htons(1); + } /* * Adjust the RXWIN0SENT flag - indicate that we have advertised