diff --git a/src/adapter.c b/src/adapter.c
index 61d14ce..5a30fc0 100644
--- a/src/adapter.c
+++ b/src/adapter.c
g_queue_foreach(adapter->auths, free_service_auth, NULL);
g_queue_free(adapter->auths);
+ /*
+ * Unregister all handlers for this specific index since
+ * the adapter bound to them is no longer valid.
+ *
+ * This also avoids having multiple instances of the same
+ * handler in case indexes got removed and re-added.
+ */
+ mgmt_unregister_index(adapter->mgmt, adapter->dev_id);
+
mgmt_unref(adapter->mgmt);
sdp_list_free(adapter->services, NULL);