diff --git a/mongoose.c b/mongoose.c
index 95ecb183849f60793d99998f836166cde3745b83..a672700982029229dd3ba7cd02ed55de03c284f2 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3536,6 +3536,7 @@ void mg_destroy_server(struct mg_server **server) {
   struct ll *lp, *tmp;
 
   if (server != NULL && *server != NULL) {
+    mg_poll_server(*server, 0);
     closesocket((*server)->listening_sock);
     closesocket((*server)->ctl[0]);
     closesocket((*server)->ctl[1]);