Index: kernel/generic/src/ipc/ops/conctmeto.c
===================================================================
--- kernel/generic/src/ipc/ops/conctmeto.c	(revision 5d3ed34dfe2da2410c8b3b125cd918dfcef7a6a5)
+++ kernel/generic/src/ipc/ops/conctmeto.c	(revision fedac2f6d42998b2d418219bfe3a62d4d5bc6162)
@@ -65,5 +65,5 @@
 	/* If the user accepted call, connect */
 	if (IPC_GET_RETVAL(answer->data) == EOK)
-		ipc_phone_connect(phone, &TASK->answerbox);
+		(void) ipc_phone_connect(phone, &TASK->answerbox);
 
 	return EOK;
Index: kernel/generic/src/ipc/ops/concttome.c
===================================================================
--- kernel/generic/src/ipc/ops/concttome.c	(revision 5d3ed34dfe2da2410c8b3b125cd918dfcef7a6a5)
+++ kernel/generic/src/ipc/ops/concttome.c	(revision fedac2f6d42998b2d418219bfe3a62d4d5bc6162)
@@ -73,7 +73,13 @@
 	} else if (phoneid >= 0) {
 		/* The connection was accepted */
-		phone_connect(phoneid, &answer->sender->answerbox);
-		/* Set 'phone hash' as arg5 of response */
-		IPC_SET_ARG5(answer->data, (sysarg_t) &TASK->phones[phoneid]);
+		if (phone_connect(phoneid, &answer->sender->answerbox)) {
+			/* Set 'phone hash' as arg5 of response */
+			IPC_SET_ARG5(answer->data,
+			    (sysarg_t) &TASK->phones[phoneid]);
+		} else {
+			/* The answerbox is shutting down. */
+			IPC_SET_RETVAL(answer->data, ENOENT);
+			answer_cleanup(answer, olddata);
+		}
 	} else {
 		IPC_SET_RETVAL(answer->data, ELIMIT);
Index: kernel/generic/src/ipc/ops/connclone.c
===================================================================
--- kernel/generic/src/ipc/ops/connclone.c	(revision 5d3ed34dfe2da2410c8b3b125cd918dfcef7a6a5)
+++ kernel/generic/src/ipc/ops/connclone.c	(revision fedac2f6d42998b2d418219bfe3a62d4d5bc6162)
@@ -87,5 +87,5 @@
 	}
 		
-	ipc_phone_connect(&phone->callee->task->phones[newphid],
+	(void) ipc_phone_connect(&phone->callee->task->phones[newphid],
 	    cloned_phone->callee);
 	phones_unlock(cloned_phone, phone);
