diff --git a/mongoose.c b/mongoose.c
index 84c2d609456696a2c43480aa35ff264de625c7e4..30c881aebfb971a4fc241b1a1df39798abfa2d5f 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -5209,7 +5209,7 @@ static void iter2(struct ns_connection *nc, int ev, void *param) {
   (void) ev;
 
   //DBG(("%p [%s]", conn, msg));
-  if (sscanf(msg, "%p %n", &func, &n) && func != NULL) {
+  if (sscanf(msg, "%p %n", &func, &n) && func != NULL && conn != NULL) {
     conn->mg_conn.callback_param = (void *) (msg + n);
     func(&conn->mg_conn, MG_POLL);
   }