Index: src/libcfa/concurrency/coroutine
===================================================================
--- src/libcfa/concurrency/coroutine	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/coroutine	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -63,5 +63,5 @@
 
 // Get current coroutine
-extern volatile thread_local coroutine_desc * this_coroutine;
+extern thread_local coroutine_desc * volatile this_coroutine;
 
 // Private wrappers for context switch and stack creation
Index: src/libcfa/concurrency/coroutine.c
===================================================================
--- src/libcfa/concurrency/coroutine.c	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/coroutine.c	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -26,11 +26,9 @@
 }
 
-#include "kernel"
-#include "libhdr.h"
+#include "kernel_private.h"
 
 #define __CFA_INVOKE_PRIVATE__
 #include "invoke.h"
 
-extern volatile thread_local processor * this_processor;
 
 //-----------------------------------------------------------------------------
Index: src/libcfa/concurrency/kernel.c
===================================================================
--- src/libcfa/concurrency/kernel.c	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/kernel.c	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -55,7 +55,7 @@
 // Global state
 
-volatile thread_local coroutine_desc * this_coroutine;
-volatile thread_local thread_desc * this_thread;
-volatile thread_local processor * this_processor;
+thread_local coroutine_desc * volatile this_coroutine;
+thread_local thread_desc *    volatile this_thread;
+thread_local processor *      volatile this_processor;
 
 volatile thread_local bool preemption_in_progress = 0;
Index: src/libcfa/concurrency/kernel_private.h
===================================================================
--- src/libcfa/concurrency/kernel_private.h	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/kernel_private.h	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -73,7 +73,8 @@
 extern event_kernel_t * event_kernel;
 
-extern volatile thread_local processor * this_processor;
-extern volatile thread_local coroutine_desc * this_coroutine;
-extern volatile thread_local thread_desc * this_thread;
+extern thread_local coroutine_desc * volatile this_coroutine;
+extern thread_local thread_desc *    volatile this_thread;
+extern thread_local processor *      volatile this_processor;
+
 extern volatile thread_local bool preemption_in_progress;
 extern volatile thread_local unsigned short disable_preempt_count;
Index: src/libcfa/concurrency/thread
===================================================================
--- src/libcfa/concurrency/thread	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/thread	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -54,5 +54,5 @@
 }
 
-extern volatile thread_local thread_desc * this_thread;
+extern thread_local thread_desc * volatile this_thread;
 
 forall( dtype T | is_thread(T) )
Index: src/libcfa/concurrency/thread.c
===================================================================
--- src/libcfa/concurrency/thread.c	(revision b826e6b7674b1614df5016529521f2926b812835)
+++ src/libcfa/concurrency/thread.c	(revision 9cc047288add80fde90745e40c152d8037f4b6a8)
@@ -87,5 +87,5 @@
 
 void yield( void ) {
-	BlockInternal( (thread_desc *)this_thread );
+	BlockInternal( (thread_desc*)this_thread );
 }
 
