diff --git a/src/device.c b/src/device.c
index f13d9aa..0abed9b 100644
--- a/src/device.c
+++ b/src/device.c
return;
}
+ /* Mark service as claimed */
+ gatt_db_service_set_active(data->cur_attr, false);
+
data->dev->services = g_slist_append(data->dev->services, service);
if (data->all_services)
diff --git a/src/gatt-client.c b/src/gatt-client.c
index 809aca5..47faf86 100644
--- a/src/gatt-client.c
+++ b/src/gatt-client.c
struct btd_gatt_client *client = user_data;
struct service *service;
+ if (!gatt_db_service_get_active(attr))
+ return;
+
service = service_create(attr, client);
if (!service)
return;