Index: src/proc/scheduler.c
===================================================================
--- src/proc/scheduler.c	(revision cd95d7841b3abc438711416dfdf6551b51f15bb4)
+++ src/proc/scheduler.c	(revision 5a2e9bbbd6e729563075d3e92ba3dd6dfb9aceb8)
@@ -47,7 +47,7 @@
 #include <mm/frame.h>
 #include <mm/heap.h>
-
-
-volatile int nrdy;
+#include <debug.h>
+
+volatile count_t nrdy;
 
 
@@ -90,4 +90,6 @@
 	runq_t *r;
 	int i, n;
+
+	ASSERT(CPU != NULL);
 
 loop:
@@ -148,5 +150,5 @@
 		spinlock_unlock(&CPU->lock);
 
-		atomic_dec(&nrdy);
+		atomic_dec((int *) &nrdy);
 		r->n--;
 
@@ -230,4 +232,6 @@
 	volatile pri_t pri;
 
+	ASSERT(CPU != NULL);
+
 	pri = cpu_priority_high();
 
@@ -292,4 +296,6 @@
 {
 	int priority;
+
+	ASSERT(CPU != NULL);
 
 	if (THREAD) {
Index: src/proc/thread.c
===================================================================
--- src/proc/thread.c	(revision cd95d7841b3abc438711416dfdf6551b51f15bb4)
+++ src/proc/thread.c	(revision 5a2e9bbbd6e729563075d3e92ba3dd6dfb9aceb8)
@@ -137,5 +137,5 @@
 	spinlock_unlock(&r->lock);
 
-	atomic_inc(&nrdy);
+	atomic_inc((int *) &nrdy);
 	avg = nrdy / config.cpu_active;
 
