diff --git a/obexd/client/session.c b/obexd/client/session.c
index b7a059d..83374b5 100644
--- a/obexd/client/session.c
+++ b/obexd/client/session.c
return;
complete:
+ gw_obex_xfer_close(session->xfer, NULL);
+ gw_obex_xfer_free(session->xfer);
+ session->xfer = NULL;
+
+ g_free(session->filename);
+ session->filename = NULL;
+
+ g_free(session->name);
+ session->name = NULL;
+
if (session->agent_path && session->agent_name) {
message = dbus_message_new_method_call(session->agent_name,
session->agent_path, AGENT_INTERFACE, "Complete");
filename = g_ptr_array_index(session->pending, 0);
g_ptr_array_remove(session->pending, filename);
- gw_obex_xfer_close(session->xfer, NULL);
- gw_obex_xfer_free(session->xfer);
- session->xfer = NULL;
-
- g_free(session->filename);
- session->filename = NULL;
-
- g_free(session->name);
- session->name = NULL;
-
if (session->transfer_path) {
g_dbus_unregister_interface(session->conn,
session->transfer_path, TRANSFER_INTERFACE);