diff --git a/src/device.c b/src/device.c
index f48faba..bb0f890 100644
--- a/src/device.c
+++ b/src/device.c
struct btd_device *device)
{
profile->device_remove(profile, device);
-
- device->profiles = g_slist_remove(device->profiles, profile);
}
static gboolean do_disconnect(gpointer user_data)
do_disconnect(device);
g_slist_foreach(device->profiles, (GFunc) profile_remove, device);
+ g_slist_free(device->profiles);
+ device->profiles = NULL;
if (!update_only)
err = btd_adapter_block_address(device->adapter,