--- libev/ev.c 2007/11/11 02:26:47 1.99 +++ libev/ev.c 2007/11/11 04:02:54 1.100 @@ -1463,7 +1463,7 @@ ev_prepare_stop (EV_P_ struct ev_prepare *w) { ev_clear_pending (EV_A_ (W)w); - if (ev_is_active (w)) + if (!ev_is_active (w)) return; prepares [((W)w)->active - 1] = prepares [--preparecnt];