Index: kernel/generic/src/proc/task.c
===================================================================
--- kernel/generic/src/proc/task.c	(revision e1326cf1ae3be8cc73d854a6f6e7fac37a4af1df)
+++ kernel/generic/src/proc/task.c	(revision 05bab88f6a2578787b9598ccdf1e856cfdbd2828)
@@ -125,4 +125,14 @@
 {
 	size_t tasks_left;
+
+	if (ipc_phone_0) {
+		task_t *task_0 = ipc_phone_0->task;
+		ipc_phone_0 = NULL;
+		/*
+		 * The first task is held by kinit(), we need to release it or
+		 * it will never finish cleanup.
+		 */
+		task_release(task_0);
+	}
 	
 	/* Repeat until there are any tasks except TASK */
