Index: generic/src/main/kinit.c
===================================================================
--- generic/src/main/kinit.c	(revision 34dcd3f50106a96a5ef3009fcfac3664447812ff)
+++ generic/src/main/kinit.c	(revision c778c1a5271c971524259937fb765673c3c952fc)
@@ -109,4 +109,5 @@
 		}
 		thread_join(t);
+		thread_detach(t);
 	}
 #endif /* CONFIG_SMP */
Index: generic/src/proc/thread.c
===================================================================
--- generic/src/proc/thread.c	(revision 34dcd3f50106a96a5ef3009fcfac3664447812ff)
+++ generic/src/proc/thread.c	(revision c778c1a5271c971524259937fb765673c3c952fc)
@@ -236,5 +236,5 @@
 	bool destroy_task = false;	
 
-	ASSERT(t->state == Exiting);
+	ASSERT(t->state == Exiting || t->state == Undead);
 	ASSERT(t->task);
 	ASSERT(t->cpu);
