diff --git a/maestro/pool_client.c b/maestro/pool_client.c
index f1d4a32bd304470c730e22e4380193438b99b517..b429326ff1341089cd4828631599cffaece5b2c4 100644
--- a/maestro/pool_client.c
+++ b/maestro/pool_client.c
@@ -778,7 +778,8 @@ mstro_pc__handle_transfer_completed(Mstro__Pool__MstroMsg *msg)
   assert(completion!=NULL); assert(app_id!=MSTRO_APP_ID_INVALID);
   mstro_status s = MSTRO_UNIMPL;
 
-  DEBUG("Received transfer completion message from app %" PRIappid "\n", app_id);
+  DEBUG("Received transfer completion message from app %" PRIappid "\n",
+        app_id);
 
   /* if this is an OFI ticket: call mstro_transport_rdma_src_execute_bh */
   struct mstro_transport_mreg_table_entry* regentry = NULL;
@@ -807,8 +808,8 @@ mstro_pc__handle_transfer_completed(Mstro__Pool__MstroMsg *msg)
       goto DONE;
     }
     int64_t realsize = *(int64_t*)size;
-    if(realsize==-1) {
-      s=MSTRO_OK; // 0-size CDO has
+    if(realsize==-1 && realsize!=0) {
+      s=MSTRO_OK; // 0-size CDO or type-0 CDO
       DEBUG("Source CDO empty, doing NULL transfer\n");
       s=MSTRO_OK;
     } else {