Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision 980fb4e3ad96b48cc0912eafa1db767498aaa625)
+++ libcfa/src/concurrency/invoke.h	(revision 80ec409fc5bfa502a6e3e2abf9fbccda548e9a91)
@@ -26,4 +26,11 @@
 #ifndef _INVOKE_H_
 #define _INVOKE_H_
+
+	struct __cfaehm_try_resume_node;
+	struct __cfaehm_base_exception_t;
+	struct exception_context_t {
+		struct __cfaehm_try_resume_node * top_resume;
+		struct __cfaehm_base_exception_t * current_exception;
+	};
 
 	struct __stack_context_t {
@@ -51,4 +58,7 @@
 		// base of stack
 		void * base;
+
+		// Information for exception handling.
+		struct exception_context_t exception_context;
 	};
 
@@ -84,5 +94,7 @@
 	};
 
-	static inline struct __stack_t * __get_stack( struct $coroutine * cor ) { return (struct __stack_t*)(((uintptr_t)cor->stack.storage) & ((uintptr_t)-2)); }
+	static inline struct __stack_t * __get_stack( struct $coroutine * cor ) {
+		return (struct __stack_t*)(((uintptr_t)cor->stack.storage) & ((uintptr_t)-2));
+	}
 
 	// struct which calls the monitor is accepting
Index: libcfa/src/exception.c
===================================================================
--- libcfa/src/exception.c	(revision 980fb4e3ad96b48cc0912eafa1db767498aaa625)
+++ libcfa/src/exception.c	(revision 80ec409fc5bfa502a6e3e2abf9fbccda548e9a91)
@@ -28,4 +28,5 @@
 #include <unwind.h>
 #include <bits/debug.hfa>
+#include "concurrency/invoke.h"
 #include "stdhdr/assert.h"
 
@@ -59,9 +60,5 @@
 
 // Temperary global exception context. Does not work with concurency.
-struct exception_context_t {
-	struct __cfaehm_try_resume_node * top_resume;
-
-	exception_t * current_exception;
-} static shared_stack = {NULL, NULL};
+static struct exception_context_t shared_stack = {NULL, NULL};
 
 // Get the current exception context.
