diff --git a/obexd/client/main.c b/obexd/client/main.c
index 16db553..7a2113d 100644
--- a/obexd/client/main.c
+++ b/obexd/client/main.c
void *user_data)
{
struct send_data *data = user_data;
+ struct transfer_data *transfer = session->pending->data;
+
+ if (transfer->err != 0) {
+ DBusMessage *error = g_dbus_create_error(data->message,
+ "org.openobex.Error.Failed",
+ transfer->err > 0 ?
+ OBEX_ResponseToString(transfer->err) :
+ strerror(-transfer->err));
+ g_dbus_send_message(data->connection, error);
+ goto done;
+ }
g_dbus_send_reply(data->connection, data->message, DBUS_TYPE_INVALID);
+done:
shutdown_session(session);
dbus_message_unref(data->message);
dbus_connection_unref(data->connection);