diff --git a/src/profile.c b/src/profile.c
index 0500983..6a71627 100644
--- a/src/profile.c
+++ b/src/profile.c
bdaddr_t *src, bdaddr_t *dst)
{
struct btd_device *device;
+ struct btd_service *service;
struct ext_io *conn;
GIOCondition cond;
device = adapter_find_device(server->adapter, dst);
- if (device)
+ if (device) {
conn->device = btd_device_ref(device);
+ service = btd_device_get_service(device,
+ server->ext->remote_uuid);
+ if (service)
+ conn->service = btd_service_ref(service);
+ }
+
cond = G_IO_HUP | G_IO_ERR | G_IO_NVAL;
conn->io_id = g_io_add_watch(io, cond, ext_io_disconnected, conn);