diff --git a/mongoose.c b/mongoose.c
index 78bab4abd828ba47dab09403158407b61d280a03..f3d2c43bab55c4ce14df00c97148bfc39732f26c 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -741,9 +741,11 @@ int ns_send(struct ns_connection *conn, const void *buf, int len) {
 }
 
 static void add_to_set(sock_t sock, fd_set *set, sock_t *max_fd) {
-  if (sock >= 0) FD_SET(sock, set);
-  if (sock > *max_fd) {
-    *max_fd = sock;
+  if (sock != INVALID_SOCKET) {
+    FD_SET(sock, set);
+    if (*max_fd == INVALID_SOCKET || sock > *max_fd) {
+      *max_fd = sock;
+    }
   }
 }