diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index 4e1a6c0..6720129 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
transfer->complete_func = complete_func;
transfer->user_data = user_data;
- if (transfer->req_id == 0)
- goto done;
+ if (!transfer->req_id) {
+ transfer->req_id = g_obex_abort(transfer->obex,
+ transfer_abort_response,
+ transfer, NULL);
+ if (transfer->req_id)
+ return TRUE;
+ }
ret = g_obex_cancel_req(transfer->obex, transfer->req_id, FALSE);
if (ret)