Index: kernel/generic/src/ipc/ipc.c
===================================================================
--- kernel/generic/src/ipc/ipc.c	(revision 675fcbd7430ca9b6ae3bcc232f5d6269225dfc5d)
+++ kernel/generic/src/ipc/ipc.c	(revision 716185dfa29c1943ab5649d9b18ed10a7570fbe7)
@@ -513,4 +513,12 @@
 		irq_spinlock_unlock(&box->lock, true);
 
+		if (lst == &box->calls) {
+			sysipc_ops_t *ops;
+
+			ops = sysipc_ops_get(call->request_method);
+			if (ops->request_process)
+				(void) ops->request_process(call, box);
+		}
+
 		ipc_data_t old = call->data;
 		IPC_SET_RETVAL(call->data, EHANGUP);
@@ -753,7 +761,7 @@
 	
 	/* Answer all messages in 'calls' and 'dispatched_calls' queues */
+	ipc_cleanup_call_list(&TASK->answerbox, &TASK->answerbox.calls);
 	ipc_cleanup_call_list(&TASK->answerbox,
 	    &TASK->answerbox.dispatched_calls);
-	ipc_cleanup_call_list(&TASK->answerbox, &TASK->answerbox.calls);
 
 	ipc_forget_all_active_calls();
Index: kernel/generic/src/ipc/kbox.c
===================================================================
--- kernel/generic/src/ipc/kbox.c	(revision 675fcbd7430ca9b6ae3bcc232f5d6269225dfc5d)
+++ kernel/generic/src/ipc/kbox.c	(revision 716185dfa29c1943ab5649d9b18ed10a7570fbe7)
@@ -96,6 +96,6 @@
 	
 	/* Answer all messages in 'calls' and 'dispatched_calls' queues. */
+	ipc_cleanup_call_list(&TASK->kb.box, &TASK->kb.box.calls);
 	ipc_cleanup_call_list(&TASK->kb.box, &TASK->kb.box.dispatched_calls);
-	ipc_cleanup_call_list(&TASK->kb.box, &TASK->kb.box.calls);
 }
 
Index: kernel/generic/src/ipc/ops/concttome.c
===================================================================
--- kernel/generic/src/ipc/ops/concttome.c	(revision 675fcbd7430ca9b6ae3bcc232f5d6269225dfc5d)
+++ kernel/generic/src/ipc/ops/concttome.c	(revision 716185dfa29c1943ab5649d9b18ed10a7570fbe7)
@@ -39,11 +39,4 @@
 #include <abi/errno.h>
 #include <arch.h>
-
-static int request_preprocess(call_t *call, phone_t *phone)
-{
-	/* Start with the assumption that there is no allocated phoneid. */
-	IPC_SET_ARG5(call->data, -1);
-	return EOK;
-}
 
 static int request_process(call_t *call, answerbox_t *box)
@@ -91,5 +84,5 @@
 
 sysipc_ops_t ipc_m_connect_to_me_ops = {
-	.request_preprocess = request_preprocess,
+	.request_preprocess = null_request_preprocess,
 	.request_forget = null_request_forget,
 	.request_process = request_process,
