Index: kernel/generic/src/ipc/kbox.c
===================================================================
--- kernel/generic/src/ipc/kbox.c	(revision 94f8e3c12f3631587fc47bc8a061c59efb915ec5)
+++ kernel/generic/src/ipc/kbox.c	(revision 5045a683db1d22280b55badb1008a62177d3cb83)
@@ -141,9 +141,16 @@
 					/*
 					 * Last phone has been disconnected.
+					 * Detach this thread so it gets
+					 * freed and terminate.
 					 */
 
-					/* Detach thread so it gets freed. */
-					thread_detach(TASK->kb_thread);
-					TASK->kb_thread = NULL;
+					/* Only need to detach thread unless already terminating. */
+					mutex_lock(&TASK->kb_cleanup_lock);
+					if (&TASK->kb_finished == false) {
+						/* Detach thread so it gets freed. */
+						thread_detach(TASK->kb_thread);
+						TASK->kb_thread = NULL;
+					}
+					mutex_unlock(&TASK->kb_cleanup_lock);
 					done = true;
 					LOG("phone list is empty\n");
