Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision e23542987c42024e758269c7930ff52bdaf97f78)
+++ libcfa/src/concurrency/invoke.h	(revision b4b63e8f7b73b2f77b154650ba47a2df216a9713)
@@ -190,5 +190,5 @@
 		} node;
 
-		#ifdef __CFA_DEBUG__
+		#if defined( __CFA_WITH_VERIFY__ )
 			unsigned long long canary;
 		#endif
Index: libcfa/src/concurrency/io.cfa
===================================================================
--- libcfa/src/concurrency/io.cfa	(revision e23542987c42024e758269c7930ff52bdaf97f78)
+++ libcfa/src/concurrency/io.cfa	(revision b4b63e8f7b73b2f77b154650ba47a2df216a9713)
@@ -97,5 +97,5 @@
 
 		if(nextt) {
-			unpark( nextt __cfaabi_dbg_ctx2 );
+			unpark( nextt );
 			enable_interrupts( __cfaabi_dbg_ctx );
 			return true;
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision e23542987c42024e758269c7930ff52bdaf97f78)
+++ libcfa/src/concurrency/kernel.cfa	(revision b4b63e8f7b73b2f77b154650ba47a2df216a9713)
@@ -251,15 +251,19 @@
 		/* paranoid */ verify( ! kernelTLS.preemption_state.enabled );
 		/* paranoid */ verify( kernelTLS.this_thread == thrd_dst );
+		/* paranoid */ verify( thrd_dst->context.SP );
 		/* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) < ((uintptr_t)__get_stack(thrd_dst->curr_cor)->base ) || thrd_dst->curr_cor == proc_cor, "ERROR : Destination $thread %p has been corrupted.\n StackPointer too small.\n", thrd_dst ); // add escape condition if we are setting up the processor
 		/* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) > ((uintptr_t)__get_stack(thrd_dst->curr_cor)->limit) || thrd_dst->curr_cor == proc_cor, "ERROR : Destination $thread %p has been corrupted.\n StackPointer too large.\n", thrd_dst ); // add escape condition if we are setting up the processor
+		/* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_dst->canary );
+
 
 
 		// set context switch to the thread that the processor is executing
-		verify( thrd_dst->context.SP );
 		__cfactx_switch( &proc_cor->context, &thrd_dst->context );
 		// when __cfactx_switch returns we are back in the processor coroutine
 
+		/* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_dst->canary );
 		/* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) > ((uintptr_t)__get_stack(thrd_dst->curr_cor)->limit), "ERROR : Destination $thread %p has been corrupted.\n StackPointer too large.\n", thrd_dst );
 		/* paranoid */ verifyf( ((uintptr_t)thrd_dst->context.SP) < ((uintptr_t)__get_stack(thrd_dst->curr_cor)->base ), "ERROR : Destination $thread %p has been corrupted.\n StackPointer too small.\n", thrd_dst );
+		/* paranoid */ verify( thrd_dst->context.SP );
 		/* paranoid */ verify( kernelTLS.this_thread == thrd_dst );
 		/* paranoid */ verify( ! kernelTLS.preemption_state.enabled );
@@ -330,6 +334,8 @@
 			__x87_store;
 		#endif
-		verify( proc_cor->context.SP );
+		/* paranoid */ verify( proc_cor->context.SP );
+		/* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_src->canary );
 		__cfactx_switch( &thrd_src->context, &proc_cor->context );
+		/* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd_src->canary );
 		#if defined( __i386 ) || defined( __x86_64 )
 			__x87_load;
@@ -363,4 +369,6 @@
 	/* paranoid */ #endif
 	/* paranoid */ verifyf( thrd->link.next == 0p, "Expected null got %p", thrd->link.next );
+	/* paranoid */ verify( 0x0D15EA5E0D15EA5E == thrd->canary );
+
 
 	if (thrd->preempted == __NO_PREEMPTION) thrd->state = Ready;
Index: libcfa/src/concurrency/kernel/startup.cfa
===================================================================
--- libcfa/src/concurrency/kernel/startup.cfa	(revision e23542987c42024e758269c7930ff52bdaf97f78)
+++ libcfa/src/concurrency/kernel/startup.cfa	(revision b4b63e8f7b73b2f77b154650ba47a2df216a9713)
@@ -451,4 +451,7 @@
 	link.next = 0p;
 	link.prev = 0p;
+	#if defined( __CFA_WITH_VERIFY__ )
+		canary = 0x0D15EA5E0D15EA5E;
+	#endif
 
 	node.next = 0p;
Index: libcfa/src/concurrency/thread.cfa
===================================================================
--- libcfa/src/concurrency/thread.cfa	(revision e23542987c42024e758269c7930ff52bdaf97f78)
+++ libcfa/src/concurrency/thread.cfa	(revision b4b63e8f7b73b2f77b154650ba47a2df216a9713)
@@ -39,4 +39,7 @@
 	link.prev = 0p;
 	link.preferred = -1;
+	#if defined( __CFA_WITH_VERIFY__ )
+		canary = 0x0D15EA5E0D15EA5E;
+	#endif
 
 	node.next = 0p;
@@ -48,4 +51,7 @@
 
 void ^?{}($thread& this) with( this ) {
+	#if defined( __CFA_WITH_VERIFY__ )
+		canary = 0xDEADDEADDEADDEAD;
+	#endif
 	unregister(curr_cluster, this);
 	^self_cor{};
