diff --git a/mongoose.c b/mongoose.c
index c3964f06d242030a4022241683b5a00f91db42b0..d31859cf818c15b48cffeed60d3f6c028b74f9d7 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3328,6 +3328,8 @@ static void *per_connection_thread_function(void *param) {
 
   mg_mgr_init(&m, NULL);
   mg_add_conn(&m, c);
+  mg_call(c, NULL, MG_EV_ACCEPT, &c->sa);
+
   while (m.active_connections != NULL) {
     mg_mgr_poll(&m, 1000);
   }
@@ -3390,6 +3392,7 @@ static void spawn_handling_thread(struct mg_connection *nc) {
   c[1]->listener = nc->listener;
   c[1]->proto_handler = nc->proto_handler;
   c[1]->user_data = nc->user_data;
+  c[1]->sa = nc->sa;
 
   mg_start_thread(per_connection_thread_function, c[1]);
 }