Index: libcfa/src/concurrency/coroutine.cfa
===================================================================
--- libcfa/src/concurrency/coroutine.cfa	(revision ef346f7cc43b1b67ca3fa5de124271b9c9ac2453)
+++ libcfa/src/concurrency/coroutine.cfa	(revision f23b685159eb22b124d2036074b1dcf5a7f5b4a6)
@@ -165,4 +165,6 @@
             coroutine_desc * src = TL_GET( this_coroutine ); // optimization
 
+            src->state = Halted;
+
             assertf( src->starter != 0,
                   "Attempt to suspend/leave coroutine \"%.256s\" (%p) that has never been resumed.\n"
Index: libcfa/src/concurrency/invoke.c
===================================================================
--- libcfa/src/concurrency/invoke.c	(revision ef346f7cc43b1b67ca3fa5de124271b9c9ac2453)
+++ libcfa/src/concurrency/invoke.c	(revision f23b685159eb22b124d2036074b1dcf5a7f5b4a6)
@@ -49,6 +49,4 @@
 
 	main( this );
-
-	cor->state = Halted;
 
 	//Final suspend, should never return
Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision ef346f7cc43b1b67ca3fa5de124271b9c9ac2453)
+++ libcfa/src/concurrency/invoke.h	(revision f23b685159eb22b124d2036074b1dcf5a7f5b4a6)
@@ -88,4 +88,5 @@
 	};
 
+	// struct which calls the monitor is accepting
 	struct __waitfor_mask_t {
 		// the index of the accepted function, -1 if none
