Index: src/libcfa/concurrency/coroutine.c
===================================================================
--- src/libcfa/concurrency/coroutine.c	(revision 3e239eaac48c6e798fe5758a0a41b89809897498)
+++ src/libcfa/concurrency/coroutine.c	(revision 6994d8c8cb2211d7a1507b8097b20b250a879d7e)
@@ -74,6 +74,6 @@
 }
 
-void ^?{}(coStack_t& this) {
-	if ( ! this.userStack ) {
+void ^?{}(coStack_t & this) {
+	if ( ! this.userStack && this.storage ) {
 		LIB_DEBUG_DO(
 			if ( mprotect( this.storage, pageSize, PROT_READ | PROT_WRITE ) == -1 ) {
@@ -122,4 +122,6 @@
 	//TEMP HACK do this on proper kernel startup
 	if(pageSize == 0ul) pageSize = sysconf( _SC_PAGESIZE );
+
+	LIB_DEBUG_PRINT_SAFE("FRED");
 
 	size_t cxtSize = libCeiling( sizeof(machine_context_t), 8 ); // minimum alignment
Index: src/libcfa/concurrency/preemption.c
===================================================================
--- src/libcfa/concurrency/preemption.c	(revision 3e239eaac48c6e798fe5758a0a41b89809897498)
+++ src/libcfa/concurrency/preemption.c	(revision 6994d8c8cb2211d7a1507b8097b20b250a879d7e)
@@ -243,5 +243,5 @@
 
 	// Setup proper signal handlers
-	__kernel_sigaction( SIGUSR1, sigHandler_ctxSwitch, SA_SIGINFO );         // CtxSwitch handler
+	__kernel_sigaction( SIGUSR1, sigHandler_ctxSwitch, SA_SIGINFO | SA_RESTART );         // CtxSwitch handler
 	// __kernel_sigaction( SIGSEGV, sigHandler_segv     , SA_SIGINFO );      // Failure handler
 	// __kernel_sigaction( SIGBUS , sigHandler_segv     , SA_SIGINFO );      // Failure handler
