diff --git a/obexd/src/obex.c b/obexd/src/obex.c
index d26fac8..15f58d3 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
switch (evt) {
case OBEX_EV_PROGRESS:
- emit_transfer_progress(os->cid, os->size, os->offset);
+ /* Just emit progress for OPUSH */
+ if (os->target == NULL)
+ emit_transfer_progress(os->cid, os->size, os->offset);
break;
case OBEX_EV_ABORT:
os_reset_session(os);
break;
case OBEX_CMD_PUT:
case OBEX_CMD_GET:
- emit_transfer_completed(os->cid,
- os->offset == os->size);
+ if (os->target == NULL)
+ emit_transfer_completed(os->cid,
+ os->offset == os->size);
os_reset_session(os);
break;
default: