Index: kernel/generic/src/ipc/sysipc.c
===================================================================
--- kernel/generic/src/ipc/sysipc.c	(revision 897fd8f11ec6c9c4a63697b4ccc6ab67c8be92f2)
+++ kernel/generic/src/ipc/sysipc.c	(revision a1026daf544b91d3c8e6d81817113aece3c7440e)
@@ -761,5 +761,5 @@
 
 	if (!call) {
-		ipc_data_t data = {0};
+		ipc_data_t data = {};
 		data.cap_handle = CAP_NIL;
 		STRUCT_TO_USPACE(calldata, &data);
@@ -767,9 +767,9 @@
 	}
 	
+	call->data.flags = call->flags;
 	if (call->flags & IPC_CALL_NOTIF) {
 		/* Set in_phone_hash to the interrupt counter */
 		call->data.phone = (void *) call->priv;
 		
-		call->data.flags = IPC_CALL_NOTIF;
 		call->data.cap_handle = CAP_NIL;
 
@@ -788,5 +788,4 @@
 		}
 
-		call->data.flags = IPC_CALL_ANSWERED;
 		call->data.cap_handle = CAP_NIL;
 		
@@ -826,5 +825,6 @@
 	/*
 	 * The callee will not receive this call and no one else has a chance to
-	 * answer it. Reply with the EPARTY error code.
+	 * answer it. Set the IPC_CALL_AUTO_REPLY flag and return the EPARTY
+	 * error code.
 	 */
 	ipc_data_t saved_data;
@@ -839,4 +839,5 @@
 	IPC_SET_RETVAL(call->data, EPARTY);
 	(void) answer_preprocess(call, saved ? &saved_data : NULL);
+	call->flags |= IPC_CALL_AUTO_REPLY;
 	ipc_answer(&TASK->answerbox, call);
 
