Index: kernel/generic/src/ipc/kbox.c
===================================================================
--- kernel/generic/src/ipc/kbox.c	(revision 170332d3d135e4a1d5f7b7ffcec5cc352b6faa1b)
+++ kernel/generic/src/ipc/kbox.c	(revision ba4a63b85a4380c6b8324933e535690fa7ca1d70)
@@ -126,4 +126,6 @@
 	ipc_answer(&TASK->kb.box, call);
 
+	mutex_lock(&TASK->kb.cleanup_lock);
+
 	ipl = interrupts_disable();
 	spinlock_lock(&TASK->lock);
@@ -136,5 +138,4 @@
 
 		/* Only detach kbox thread unless already terminating. */
-		mutex_lock(&TASK->kb.cleanup_lock);
 		if (TASK->kb.finished == false) {
 			/* Detach kbox thread so it gets freed from memory. */
@@ -142,5 +143,4 @@
 			TASK->kb.thread = NULL;
 		}
-		mutex_unlock(&TASK->kb.cleanup_lock);
 
 		LOG("Phone list is empty.");
@@ -153,4 +153,6 @@
 	spinlock_unlock(&TASK->lock);
 	interrupts_restore(ipl);
+
+	mutex_unlock(&TASK->kb.cleanup_lock);
 }
 
