Index: generic/src/proc/scheduler.c
===================================================================
--- generic/src/proc/scheduler.c	(revision 7dd25618029b6d98c0ca074a1d14e41065c8ac45)
+++ generic/src/proc/scheduler.c	(revision 961b5f01ab0baf25db1ae2fde08e1dd39e0e62bc)
@@ -491,5 +491,5 @@
 	ipl = interrupts_disable();
 	spinlock_lock(&CPU->lock);
-	count = nrdy / config.cpu_active;
+	count = atomic_get(&nrdy) / config.cpu_active;
 	count -= CPU->nrdy;
 	spinlock_unlock(&CPU->lock);
@@ -619,5 +619,5 @@
 	 * Tell find_best_thread() to wake us up later again.
 	 */
-	CPU->kcpulbstarted = 0;
+	atomic_set(&CPU->kcpulbstarted,0);
 	goto loop;
 }
Index: generic/src/proc/thread.c
===================================================================
--- generic/src/proc/thread.c	(revision 7dd25618029b6d98c0ca074a1d14e41065c8ac45)
+++ generic/src/proc/thread.c	(revision 961b5f01ab0baf25db1ae2fde08e1dd39e0e62bc)
@@ -96,5 +96,5 @@
 {
 	THREAD = NULL;
-	nrdy = 0;
+	atomic_set(&nrdy,0);
 }
 
@@ -112,5 +112,5 @@
 	runq_t *r;
 	ipl_t ipl;
-	int i, avg, send_ipi = 0;
+	int i, avg;
 
 	ipl = interrupts_disable();
@@ -136,5 +136,5 @@
 
 	atomic_inc(&nrdy);
-	avg = nrdy / config.cpu_active;
+	avg = atomic_get(&nrdy) / config.cpu_active;
 
 	spinlock_lock(&cpu->lock);
