--- libev/ev.c 2008/12/14 13:03:54 1.276 +++ libev/ev.c 2008/12/14 21:58:08 1.277 @@ -2907,11 +2907,16 @@ { ev_embed *w = (ev_embed *)(((char *)fork_w) - offsetof (ev_embed, fork)); + ev_embed_stop (EV_A_ w); + { struct ev_loop *loop = w->other; ev_loop_fork (EV_A); + ev_loop (EV_A_ EVLOOP_NONBLOCK); } + + ev_embed_start (EV_A_ w); } #if 0