if (ev->discovering == FALSE) {
hci_clear_bit(BDADDR_LE_PUBLIC, &adapter->discovery_type);
hci_clear_bit(BDADDR_LE_RANDOM, &adapter->discovery_type);
- adapter->le_discovering = false;
+
+ if (adapter->le_discovering == true) {
+ struct watch_client *client;
+ client = adapter->le_discovery_list->data;
+ g_dbus_remove_watch(dbus_conn, client->watch);
+ adapter->le_discovering = false;
+ }
} else {
hci_set_bit(BDADDR_LE_PUBLIC, &adapter->discovery_type);
hci_set_bit(BDADDR_LE_RANDOM, &adapter->discovery_type);