Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision b9376fec526ce62b12725b7b07e3779426f1d735)
+++ libcfa/src/concurrency/kernel.hfa	(revision a67c5b6b59a3e643011ad2be998558f68eca4eec)
@@ -116,4 +116,6 @@
 		$thread * thrd;
 	} init;
+
+	struct KernelThreadData * local_data;
 
 	#if !defined(__CFA_NO_STATISTICS__)
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision b9376fec526ce62b12725b7b07e3779426f1d735)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision a67c5b6b59a3e643011ad2be998558f68eca4eec)
@@ -228,4 +228,5 @@
 		__init_stats( __cfaabi_tls.this_stats );
 	#endif
+	mainProcessor->local_data = &__cfaabi_tls;
 
 	// Enable preemption
@@ -282,4 +283,6 @@
 	#endif
 
+	mainProcessor->local_data = 0p;
+
 	unregister_tls( mainProcessor );
 
@@ -329,4 +332,5 @@
 	__cfaabi_tls.this_thread    = 0p;
 	__cfaabi_tls.preemption_state.[enabled, disable_count] = [false, 1];
+	proc->local_data = &__cfaabi_tls;
 
 	register_tls( proc );
@@ -368,4 +372,6 @@
 		#endif
 	#endif
+
+	proc->local_data = 0p;
 
 	unregister_tls( proc );
@@ -500,4 +506,6 @@
 
 	this.init.thrd = initT;
+
+	this.local_data = 0p;
 
 	this.idle = eventfd(0, 0);
