diff --git a/src/lib-program-client/program-client.c b/src/lib-program-client/program-client.c index cb5b599e53..c3d1b3d079 100644 --- a/src/lib-program-client/program-client.c +++ b/src/lib-program-client/program-client.c @@ -23,10 +23,11 @@ static void program_client_callback(struct program_client *pclient, int result, void *context) { - /* do not call callback when destroying */ - if (pclient->destroying) return; program_client_callback_t *callback = pclient->callback; - i_assert(pclient->callback != NULL); + + pclient->callback = NULL; + if (pclient->destroying || callback == NULL) + return; callback(result, context); }