Index: kernel/generic/src/ipc/ops/conctmeto.c
===================================================================
--- kernel/generic/src/ipc/ops/conctmeto.c	(revision 90f20cfd46bca7e15c5e858587268ccf5e1de029)
+++ kernel/generic/src/ipc/ops/conctmeto.c	(revision 7f11dc6ba31c85d4b1daa9c4ebd4d6f99082a87c)
@@ -42,10 +42,13 @@
 static int request_preprocess(call_t *call, phone_t *phone)
 {
-	cap_handle_t phone_handle = phone_alloc(TASK);
+	cap_handle_t phone_handle;
+	int rc = phone_alloc(TASK, &phone_handle);
 
-	/* Remember the phone capability or the error. */
-	call->priv = phone_handle;
-	if (phone_handle < 0)
-		return phone_handle;
+	/* Remember the phone capability or that an error occured. */
+	call->priv = (rc == EOK) ? phone_handle : -1;
+
+	if (rc != EOK) {
+		return rc;
+	}
 
 	/* Set arg5 for server */
@@ -61,4 +64,9 @@
 {
 	cap_handle_t phone_handle = (cap_handle_t) call->priv;
+
+	if (phone_handle < 0) {
+		return EOK;
+	}
+
 	phone_dealloc(phone_handle);
 	/* Hand over reference from ARG5 to phone->kobject */
Index: kernel/generic/src/ipc/ops/concttome.c
===================================================================
--- kernel/generic/src/ipc/ops/concttome.c	(revision 90f20cfd46bca7e15c5e858587268ccf5e1de029)
+++ kernel/generic/src/ipc/ops/concttome.c	(revision 7f11dc6ba31c85d4b1daa9c4ebd4d6f99082a87c)
@@ -42,9 +42,8 @@
 static int request_process(call_t *call, answerbox_t *box)
 {
-	cap_handle_t phone_handle = phone_alloc(TASK);
-
-	IPC_SET_ARG5(call->data, phone_handle);
-	
-	return EOK;
+	cap_handle_t phone_handle;
+	int rc = phone_alloc(TASK, &phone_handle);
+	IPC_SET_ARG5(call->data, (rc == EOK) ? phone_handle : -1);
+	return 0;
 }
 
