Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 734908cfcffc400f2671ac5021bda6fcf9d8d62b)
+++ libcfa/src/concurrency/kernel.cfa	(revision 254ad1b52e2ee6c74b7c67d7ff2a946c1f613982)
@@ -349,5 +349,5 @@
 		if(unlikely(thrd_dst->preempted != __NO_PREEMPTION)) {
 			// The thread was preempted, reschedule it and reset the flag
-			__schedule_thread( thrd_dst );
+			schedule_thread$( thrd_dst );
 			break RUNNING;
 		}
@@ -439,4 +439,5 @@
 	/* paranoid */ verify( ! __preemption_enabled() );
 	/* paranoid */ verify( kernelTLS().this_proc_id );
+	/* paranoid */ verify( ready_schedule_islocked());
 	/* paranoid */ verify( thrd );
 	/* paranoid */ verify( thrd->state != Halted );
@@ -457,14 +458,12 @@
 	struct cluster * cl = thrd->curr_cluster;
 
-	ready_schedule_lock();
-		// push the thread to the cluster ready-queue
-		push( cl, thrd );
-
-		// variable thrd is no longer safe to use
+	// push the thread to the cluster ready-queue
+	push( cl, thrd );
+
+	// variable thrd is no longer safe to use
 	thrd = 0xdeaddeaddeaddeadp;
 
-		// wake the cluster using the save variable.
-		__wake_one( cl );
-	ready_schedule_unlock();
+	// wake the cluster using the save variable.
+	__wake_one( cl );
 
 	#if !defined(__CFA_NO_STATISTICS__)
@@ -479,5 +478,12 @@
 	#endif
 
-	/* paranoid */ verify( ! __preemption_enabled() );
+	/* paranoid */ verify( ready_schedule_islocked());
+	/* paranoid */ verify( ! __preemption_enabled() );
+}
+
+void schedule_thread$( $thread * thrd ) {
+	ready_schedule_lock();
+		__schedule_thread( thrd );
+	ready_schedule_unlock();
 }
 
@@ -532,5 +538,5 @@
 		disable_interrupts();
 			// Wake lost the race,
-			__schedule_thread( thrd );
+			schedule_thread$( thrd );
 		enable_interrupts(false);
 	}
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision 734908cfcffc400f2671ac5021bda6fcf9d8d62b)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision 254ad1b52e2ee6c74b7c67d7ff2a946c1f613982)
@@ -225,5 +225,5 @@
 	// Add the main thread to the ready queue
 	// once resume is called on mainProcessor->runner the mainThread needs to be scheduled like any normal thread
-	__schedule_thread(mainThread);
+	schedule_thread$(mainThread);
 
 	// SKULLDUGGERY: Force a context switch to the main processor to set the main thread's context to the current UNIX
Index: libcfa/src/concurrency/kernel_private.hfa
===================================================================
--- libcfa/src/concurrency/kernel_private.hfa	(revision 734908cfcffc400f2671ac5021bda6fcf9d8d62b)
+++ libcfa/src/concurrency/kernel_private.hfa	(revision 254ad1b52e2ee6c74b7c67d7ff2a946c1f613982)
@@ -32,9 +32,5 @@
 }
 
-void __schedule_thread( $thread * )
-#if defined(NDEBUG) || (!defined(__CFA_DEBUG__) && !defined(__CFA_VERIFY__))
-	__attribute__((nonnull (1)))
-#endif
-;
+void schedule_thread$( $thread * ) __attribute__((nonnull (1)));
 
 extern bool __preemption_enabled();
Index: libcfa/src/concurrency/thread.cfa
===================================================================
--- libcfa/src/concurrency/thread.cfa	(revision 734908cfcffc400f2671ac5021bda6fcf9d8d62b)
+++ libcfa/src/concurrency/thread.cfa	(revision 254ad1b52e2ee6c74b7c67d7ff2a946c1f613982)
@@ -134,5 +134,5 @@
 	/* paranoid */ verify( this_thrd->context.SP );
 
-	__schedule_thread( this_thrd );
+	schedule_thread$( this_thrd );
 	enable_interrupts();
 }
