diff --git a/src/shared/micp.c b/src/shared/micp.c
index 90d05b3..b82bd92 100644
--- a/src/shared/micp.c
+++ b/src/shared/micp.c
if (!queue_remove(sessions, micp))
return;
+ bt_gatt_client_idle_unregister(micp->client, micp->idle_id);
bt_gatt_client_unref(micp->client);
micp->client = NULL;
micp_db_free(micp->rdb);
+ queue_destroy(micp->notify, free);
queue_destroy(micp->pending, NULL);
queue_destroy(micp->ready_cbs, micp_ready_free);
micp->ldb = mdb;
micp->pending = queue_new();
micp->ready_cbs = queue_new();
+ micp->notify = queue_new();
if (!rdb)
goto done;