--- libev/ev.c 2007/11/11 01:29:49 1.94 +++ libev/ev.c 2007/11/11 01:42:13 1.95 @@ -1436,7 +1436,7 @@ ev_idle_stop (EV_P_ struct ev_idle *w) { ev_clear_pending (EV_A_ (W)w); - if (!ev_is_active (w)) + if (ev_is_active (w)) return; idles [((W)w)->active - 1] = idles [--idlecnt]; @@ -1458,7 +1458,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]; @@ -1551,7 +1551,7 @@ ev_child_stop (EV_P_ struct ev_child *w) { ev_clear_pending (EV_A_ (W)w); - if (ev_is_active (w)) + if (!ev_is_active (w)) return; wlist_del ((WL *)&childs [w->pid & (PID_HASHSIZE - 1)], (WL)w);