diff --git a/src/shared/timeout-mainloop.c b/src/shared/timeout-mainloop.c
index a0d18b7..37bb51c 100644
--- a/src/shared/timeout-mainloop.c
+++ b/src/shared/timeout-mainloop.c
struct timeout_data *data = user_data;
if (data->func(data->user_data) &&
- !mainloop_modify_timeout(data->id, data->timeout))
+ !mainloop_modify_timeout(data->id, data->timeout))
return;
mainloop_remove_timeout(data->id);
data->id = mainloop_add_timeout(timeout, timeout_callback, data,
timeout_destroy);
- if (!data->id) {
+ if (data->id < 0) {
free(data);
return 0;
}