patch by Ambroz Bizjak: fixed bug #49717 (window size in received SYN and SYN-ACK assumed scaled)
diff --git a/CHANGELOG b/CHANGELOG
index 2859a03..b840053 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -14,6 +14,10 @@
 
   ++ Bugfixes:
 
+  2016-11-28: Ambroz Bizjak
+  * tcpi_in.c: fixed bug #49717 (window size in received SYN and SYN-ACK
+    assumed scaled)
+
   2016-11-25: Simon Goldschmidt
   * dhcp.c: fixed bug #49676 (Possible endless loop when parsing dhcp options)
 
diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c
index 93268b3..7f42f57 100644
--- a/src/core/tcp_in.c
+++ b/src/core/tcp_in.c
@@ -602,7 +602,7 @@
 
     /* Parse any options in the SYN. */
     tcp_parseopt(npcb);
-    npcb->snd_wnd = SND_WND_SCALE(npcb, tcphdr->wnd);
+    npcb->snd_wnd = tcphdr->wnd;
     npcb->snd_wnd_max = npcb->snd_wnd;
     npcb->ssthresh = LWIP_TCP_INITIAL_SSTHRESH(npcb);
 
@@ -751,7 +751,7 @@
       pcb->rcv_nxt = seqno + 1;
       pcb->rcv_ann_right_edge = pcb->rcv_nxt;
       pcb->lastack = ackno;
-      pcb->snd_wnd = SND_WND_SCALE(pcb, tcphdr->wnd);
+      pcb->snd_wnd = tcphdr->wnd;
       pcb->snd_wnd_max = pcb->snd_wnd;
       pcb->snd_wl1 = seqno - 1; /* initialise to seqno - 1 to force window update */
       pcb->state = ESTABLISHED;