diff --git a/obexd/client/session.c b/obexd/client/session.c
index e1a6c88..f903622 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
if (channel == 0)
goto failed;
- sdp_close(callback->sdp);
-
- rfcomm_connect(&callback->session->src, &callback->session->dst,
- channel, rfcomm_callback, callback);
-
- return;
+ if (rfcomm_connect(&callback->session->src, &callback->session->dst,
+ channel, rfcomm_callback, callback) == 0) {
+ sdp_close(callback->sdp);
+ return;
+ }
failed:
sdp_close(callback->sdp);