diff --git a/src/device.c b/src/device.c
index 7a6f764..65838f5 100644
--- a/src/device.c
+++ b/src/device.c
{
struct browse_req *req = user_data;
struct btd_device *device = req->device;
+ DBusMessage *reply;
GSList *primaries;
char addr[18];
DEVICE_INTERFACE, "UUIDs");
send_reply:
+ /* If SDP search failed during an ongoing connection request, we should
+ * reply to D-Bus method call.
+ */
+ if (err < 0 && device->connect) {
+ DBG("SDP failed during connection");
+ reply = btd_error_failed(device->connect, strerror(-err));
+ g_dbus_send_message(dbus_conn, reply);
+ dbus_message_unref(device->connect);
+ device->connect = NULL;
+ }
+
device_svc_resolved(device, BROWSE_SDP, BDADDR_BREDR, err);
}