Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision f35749ea567f56991e775945db2ae2ded40751e6)
+++ kernel/generic/src/proc/task.c	(revision d71b0ded43394268820f3bd898484eac545e3538)
@@ -202,4 +202,9 @@
 		return NULL;
 
+	if (caps_task_init(task) != EOK) {
+		slab_free(task_cache, task);
+		return NULL;
+	}
+
 	refcount_init(&task->refcount);
 
@@ -213,6 +218,4 @@
 	task->ucycles = 0;
 	task->kcycles = 0;
-
-	caps_task_init(task);
 
 	task->ipc_info.call_sent = 0;
@@ -249,7 +252,7 @@
 		}
 
-		kobject_t *phone_obj = kobject_get(task, phone_handle,
-		    KOBJECT_TYPE_PHONE);
-		(void) ipc_phone_connect(phone_obj->phone, ipc_box_0);
+		phone_t *phone = phone_from_kobject(
+		    kobject_get(task, phone_handle, KOBJECT_TYPE_PHONE));
+		(void) ipc_phone_connect(phone, ipc_box_0);
 	}
 
@@ -288,4 +291,6 @@
 	 */
 	as_release(task->as);
+
+	caps_task_clear(task);
 
 	slab_free(task_cache, task);
