Index: src/proc/thread.c
===================================================================
--- src/proc/thread.c	(revision 3418c413468bacb6b19adb215a4eaf37388115ca)
+++ src/proc/thread.c	(revision 8a78e68a764f51401e8328994a376ce7472c4b87)
@@ -47,9 +47,6 @@
 #include <list.h>
 #include <config.h>
-
-#ifdef __SMP__
 #include <arch/interrupt.h>
-#include <arch/apic.h>
-#endif /* __SMP__ */
+#include <smp/ipi.h>
 
 char *thread_states[] = {"Invalid", "Running", "Sleeping", "Ready", "Entering", "Exiting"};
@@ -123,11 +120,9 @@
 
 	spinlock_lock(&cpu->lock);
-	if ((++cpu->nrdy) > avg && (config.cpu_active == config.cpu_count)) {
+	if ((++cpu->nrdy) > avg) {
 		/*
 		 * If there are idle halted CPU's, this will wake them up.
 		 */
-		#ifdef __SMP__
 		ipi_broadcast(VECTOR_WAKEUP_IPI);
-		#endif /* __SMP__  */
 	}	
 	spinlock_unlock(&cpu->lock);
