diff --git a/changelog b/changelog
index 4580d42a63e9d133b4cbcc291d723534cf6a03c0..92035c98873a1f185d68eb9f21e77c12dc637462 100644
--- a/changelog
+++ b/changelog
@@ -36,6 +36,8 @@ to tell if more headers had arrived.  Result was if the browser didn't
 close the keepalive, we retained ah for the lifetime of the keepalive,
 using up the pool.
 
+8) MAJOR windows-only-POLLHUP was not coming
+
 
 Changes
 -------
diff --git a/lib/lws-plat-win.c b/lib/lws-plat-win.c
index cff09db2a9ad284ae63714990f81be446165c86d..6d731fc0f86f564dac50fe2f5a55527d4eee4192 100644
--- a/lib/lws-plat-win.c
+++ b/lib/lws-plat-win.c
@@ -387,7 +387,8 @@ lws_plat_insert_socket_into_fds(struct lws_context *context, struct lws *wsi)
 
 	pt->fds[pt->fds_count++].revents = 0;
 	pt->events[pt->fds_count] = WSACreateEvent();
-	WSAEventSelect(wsi->sock, pt->events[pt->fds_count], LWS_POLLIN);
+	WSAEventSelect(wsi->sock, pt->events[pt->fds_count],
+		       LWS_POLLIN | LWS_POLLHUP);
 }
 
 LWS_VISIBLE void