Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision addbce4946ce4647e53ac14408f57df54b233359)
+++ kernel/generic/src/ipc/sysipc.c	(revision 6deb2cdd4f9ffa23e068faa9b3d977ec3399c1ed)
@@ -744,6 +744,4 @@
  *                 for explanation.
  *
- * @return Capability handle of the received request.
- * @return CAP_NIL for answers, notifications and when there is no call.
  * @return Negative error code on error.
  */
@@ -767,6 +765,8 @@
 
 	if (!call) {
-		STRUCT_TO_USPACE(calldata, &(ipc_data_t){});
-		return CAP_NIL;
+		ipc_data_t data = {0};
+		data.cap_handle = CAP_NIL;
+		STRUCT_TO_USPACE(calldata, &data);
+		return EOK;
 	}
 	
@@ -776,9 +776,10 @@
 		
 		call->data.flags = IPC_CALL_NOTIF;
+		call->data.cap_handle = CAP_NIL;
 
 		STRUCT_TO_USPACE(calldata, &call->data);
 		kobject_put(call->kobject);
 		
-		return CAP_NIL;
+		return EOK;
 	}
 	
@@ -792,9 +793,10 @@
 
 		call->data.flags = IPC_CALL_ANSWERED;
+		call->data.cap_handle = CAP_NIL;
 		
 		STRUCT_TO_USPACE(calldata, &call->data);
 		kobject_put(call->kobject);
 		
-		return CAP_NIL;
+		return EOK;
 	}
 	
@@ -809,4 +811,6 @@
 	}
 	
+	call->data.cap_handle = handle;
+
 	/*
 	 * Include phone hash of the caller in the request, copy the whole
@@ -819,5 +823,5 @@
 	kobject_add_ref(call->kobject);
 	cap_publish(TASK, handle, call->kobject);
-	return handle;
+	return EOK;
 
 error:
