diff --git a/inc/lektor/internal/os.h b/inc/lektor/internal/os.h
index 614ac88ce8f82a3936857f0abbacb7ab79d4bd0e..caaf5c8501b43e829f5a8ac22326af041a1eb608 100644
--- a/inc/lektor/internal/os.h
+++ b/inc/lektor/internal/os.h
@@ -221,7 +221,7 @@ is_error_broken_pipe(int UNUSED error)
 
 #if defined(LKT_OS_WIN) && (LKT_OS_WIN == 1)
 PRIVATE_FUNCTION int
-poll(LPWSAPOLLFD *fds, ULONG nfds, INT timeout)
+poll(LPWSAPOLLFD fds, ULONG nfds, INT timeout)
 {
     return WSAPoll(fds, nfds, timeout);
 }
diff --git a/src/net/listen.c b/src/net/listen.c
index 38ba57a633f3be143866dd16f474bb2865ddd468..6abd280fa7bcc4ca9abe5058a3056cfcb152b279 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -727,7 +727,7 @@ handle_network_events(struct lkt_state *srv)
         msg = NULL;
     }
 
-    for (size_t i = 1; i <= srv->fds_len; i++) {
+    for (size_t i = 1; i < srv->fds_len; i++) {
         if (!srv->fds[i].revents)
             continue;
         if (srv->fds[i].revents & (POLLHUP | POLLERR)) {