Index: kernel/generic/src/interrupt/interrupt.c
===================================================================
--- kernel/generic/src/interrupt/interrupt.c	(revision 7a0359b903311f67678b4a0a3ebbcf0daf6eab38)
+++ kernel/generic/src/interrupt/interrupt.c	(revision 22c3444da12c77181be739f433e57e2eb2ec3b70)
@@ -100,6 +100,4 @@
 NO_TRACE void exc_dispatch(unsigned int n, istate_t *istate)
 {
-	ASSERT(CPU);
-	
 #if (IVT_ITEMS > 0)
 	ASSERT(n < IVT_ITEMS);
@@ -114,12 +112,14 @@
 	
 	/* Account CPU usage if it has waked up from sleep */
-	irq_spinlock_lock(&CPU->lock, false);
-	if (CPU->idle) {
-		uint64_t now = get_cycle();
-		CPU->idle_cycles += now - CPU->last_cycle;
-		CPU->last_cycle = now;
-		CPU->idle = false;
-	}
-	irq_spinlock_unlock(&CPU->lock, false);
+	if (CPU) {
+		irq_spinlock_lock(&CPU->lock, false);
+		if (CPU->idle) {
+			uint64_t now = get_cycle();
+			CPU->idle_cycles += now - CPU->last_cycle;
+			CPU->last_cycle = now;
+			CPU->idle = false;
+		}
+		irq_spinlock_unlock(&CPU->lock, false);
+	}
 	
 	uint64_t begin_cycle = get_cycle();
