Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 3ea8ad195eaf3b6003e0696532d1c043565ce667)
+++ libcfa/src/concurrency/kernel.cfa	(revision 0292aa47c03401bae026232cc6e6461d5ae6b094)
@@ -379,6 +379,14 @@
 
 	ready_schedule_lock();
-		push( thrd->curr_cluster, thrd );
-		__wake_one(thrd->curr_cluster);
+		// Dereference the thread now because once we push it, there is not guaranteed it's still valid.
+		struct cluster * cl = thrd->curr_cluster;
+
+		// push the thread to the cluster ready-queue
+		push( cl, thrd );
+
+		// variable thrd is no longer safe to use
+
+		// wake the cluster using the save variable.
+		__wake_one( cl );
 	ready_schedule_unlock();
 
