diff --git a/mongoose.c b/mongoose.c
index 74adbb5d7ef83759b9911ac861d34b888604e9e4..e47801bbdb808387df90d3d9c0f494c6aef8d19e 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3046,6 +3046,11 @@ struct mg_connection *mg_bind_opt(struct mg_mgr *mgr, const char *address,
   opts.user_data = user_data;
 #endif
 
+  if (callback == NULL) {
+    MG_SET_PTRPTR(opts.error_string, "handler is required");
+    return NULL;
+  }
+
   MG_COPY_COMMON_CONNECTION_OPTIONS(&add_sock_opts, &opts);
 
 #if MG_ENABLE_TUN