Index: src/benchmark/Makefile.am
===================================================================
--- src/benchmark/Makefile.am	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/benchmark/Makefile.am	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -50,17 +50,17 @@
 
 ctxswitch-cfa_coroutine$(EXEEXT):
-	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-cfa_thread$(EXEEXT):
-	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-upp_coroutine$(EXEEXT):
-	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-upp_thread$(EXEEXT):
-	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-pthread$(EXEEXT):
-	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ## =========================================================================================================
@@ -73,17 +73,17 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-cfa_thread$(EXEEXT):
-	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-upp_coroutine$(EXEEXT):
-	u++          creation/upp_cor.cc  -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-upp_thread$(EXEEXT):
-	u++          creation/upp_thrd.cc -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-pthread$(EXEEXT):
-	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ## =========================================================================================================
@@ -97,20 +97,20 @@
 
 mutex-function$(EXEEXT):
-	@BACKEND_CC@ mutex/function.c -DBENCH_N=500000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt
+	@BACKEND_CC@ mutex/function.c -DBENCH_N=500000000      -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-pthread_lock$(EXEEXT):
-	@BACKEND_CC@ mutex/pthreads.c -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ mutex/pthreads.c -DBENCH_N=50000000       -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-upp$(EXEEXT):
-	u++          mutex/upp.cc     -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          mutex/upp.cc     -DBENCH_N=50000000       -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa1$(EXEEXT):
-	${CC}        mutex/cfa1.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa1.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa2$(EXEEXT):
-	${CC}        mutex/cfa2.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa2.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa4$(EXEEXT):
-	${CC}        mutex/cfa4.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa4.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ## =========================================================================================================
@@ -122,14 +122,14 @@
 
 signal-upp$(EXEEXT):
-	u++          schedint/upp.cc     -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          schedint/upp.cc     -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa1$(EXEEXT):
-	${CC}        schedint/cfa1.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa2$(EXEEXT):
-	${CC}        schedint/cfa2.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa4$(EXEEXT):
-	${CC}        schedint/cfa4.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ## =========================================================================================================
@@ -141,21 +141,16 @@
 
 waitfor-upp$(EXEEXT):
-	u++          schedext/upp.cc     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa1$(EXEEXT):
-	${CC}        schedext/cfa1.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa2$(EXEEXT):
-	${CC}        schedext/cfa2.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa4$(EXEEXT):
-	${CC}        schedext/cfa4.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ## =========================================================================================================
-sched-int$(EXEEXT):
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 SchedInt.c
-
-monitor$(EXEEXT):
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 Monitor.c
 
 %.run : %$(EXEEXT) ${REPEAT}
Index: src/benchmark/Makefile.in
===================================================================
--- src/benchmark/Makefile.in	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/benchmark/Makefile.in	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -465,17 +465,17 @@
 
 ctxswitch-cfa_coroutine$(EXEEXT):
-	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        ctxswitch/cfa_cor.c   -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-cfa_thread$(EXEEXT):
-	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        ctxswitch/cfa_thrd.c  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-upp_coroutine$(EXEEXT):
-	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          ctxswitch/upp_cor.cc  -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-upp_thread$(EXEEXT):
-	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          ctxswitch/upp_thrd.cc -DBENCH_N=50000000  -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 ctxswitch-pthread$(EXEEXT):
-	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ ctxswitch/pthreads.c  -DBENCH_N=50000000  -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation$(EXEEXT) :\
@@ -487,17 +487,17 @@
 
 creation-cfa_coroutine$(EXEEXT):
-	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        creation/cfa_cor.c   -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-cfa_thread$(EXEEXT):
-	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        creation/cfa_thrd.c  -DBENCH_N=10000000   -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-upp_coroutine$(EXEEXT):
-	u++          creation/upp_cor.cc  -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          creation/upp_cor.cc  -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-upp_thread$(EXEEXT):
-	u++          creation/upp_thrd.cc -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          creation/upp_thrd.cc -DBENCH_N=50000000   -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 creation-pthread$(EXEEXT):
-	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ creation/pthreads.c  -DBENCH_N=250000     -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex$(EXEEXT) :\
@@ -510,20 +510,20 @@
 
 mutex-function$(EXEEXT):
-	@BACKEND_CC@ mutex/function.c -DBENCH_N=500000000 ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt
+	@BACKEND_CC@ mutex/function.c -DBENCH_N=500000000      -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-pthread_lock$(EXEEXT):
-	@BACKEND_CC@ mutex/pthreads.c -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -lrt -pthread
+	@BACKEND_CC@ mutex/pthreads.c -DBENCH_N=50000000       -I. -lrt -pthread                    ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-upp$(EXEEXT):
-	u++          mutex/upp.cc     -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          mutex/upp.cc     -DBENCH_N=50000000       -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa1$(EXEEXT):
-	${CC}        mutex/cfa1.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa1.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa2$(EXEEXT):
-	${CC}        mutex/cfa2.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa2.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 mutex-cfa4$(EXEEXT):
-	${CC}        mutex/cfa4.c     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        mutex/cfa4.c     -DBENCH_N=5000000        -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal$(EXEEXT) :\
@@ -534,14 +534,14 @@
 
 signal-upp$(EXEEXT):
-	u++          schedint/upp.cc     -DBENCH_N=50000000  ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          schedint/upp.cc     -DBENCH_N=50000000    -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa1$(EXEEXT):
-	${CC}        schedint/cfa1.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa2$(EXEEXT):
-	${CC}        schedint/cfa2.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 signal-cfa4$(EXEEXT):
-	${CC}        schedint/cfa4.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedint/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor$(EXEEXT) :\
@@ -552,20 +552,14 @@
 
 waitfor-upp$(EXEEXT):
-	u++          schedext/upp.cc     -DBENCH_N=5000000   ${AM_CFLAGS} ${CFLAGS} ${ccflags} -I. -nodebug -lrt -quiet
+	u++          schedext/upp.cc     -DBENCH_N=5000000     -I. -nodebug -lrt -quiet             ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa1$(EXEEXT):
-	${CC}        schedext/cfa1.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedext/cfa1.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa2$(EXEEXT):
-	${CC}        schedext/cfa2.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
+	${CC}        schedext/cfa2.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 waitfor-cfa4$(EXEEXT):
-	${CC}        schedext/cfa4.c     -DBENCH_N=500000    ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -I. -nodebug -lrt -quiet
-
-sched-int$(EXEEXT):
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 SchedInt.c
-
-monitor$(EXEEXT):
-	${CC} ${AM_CFLAGS} ${CFLAGS} ${ccflags} @CFA_FLAGS@ -nodebug -lrt -DN=50000000 Monitor.c
+	${CC}        schedext/cfa4.c     -DBENCH_N=500000      -I. -nodebug -lrt -quiet @CFA_FLAGS@ ${AM_CFLAGS} ${CFLAGS} ${ccflags}
 
 %.run : %$(EXEEXT) ${REPEAT}
Index: src/libcfa/concurrency/kernel.c
===================================================================
--- src/libcfa/concurrency/kernel.c	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/concurrency/kernel.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -548,12 +548,12 @@
 
 	int len = snprintf( abort_text, abort_text_size, "Error occurred while executing task %.256s (%p)", thrd->self_cor.name, thrd );
-	__lib_debug_write( STDERR_FILENO, abort_text, len );
+	__lib_debug_write( abort_text, len );
 
 	if ( thrd != this_coroutine ) {
 		len = snprintf( abort_text, abort_text_size, " in coroutine %.256s (%p).\n", this_coroutine->name, this_coroutine );
-		__lib_debug_write( STDERR_FILENO, abort_text, len );
+		__lib_debug_write( abort_text, len );
 	}
 	else {
-		__lib_debug_write( STDERR_FILENO, ".\n", 2 );
+		__lib_debug_write( ".\n", 2 );
 	}
 }
Index: src/libcfa/concurrency/monitor.c
===================================================================
--- src/libcfa/concurrency/monitor.c	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/concurrency/monitor.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -95,5 +95,4 @@
 		else if( this->owner == thrd) {
 			// We already have the monitor, just note how many times we took it
-			verify( this->recursion > 0 );
 			this->recursion += 1;
 
@@ -207,4 +206,5 @@
 		// it means we don't need to do anything
 		if( this->recursion != 0) {
+			LIB_DEBUG_PRINT_SAFE("Kernel :  recursion still %d\n", this->recursion);
 			unlock( &this->lock );
 			return;
@@ -536,9 +536,9 @@
 	short actual_count = aggregate( mon_storage, mask );
 
-	LIB_DEBUG_PRINT_SAFE("Kernel : waitfor %d (s: %d, m: %d)\n", actual_count, mask.size, (short)max);
+	LIB_DEBUG_PRINT_BUFFER_DECL( "Kernel : waitfor %d (s: %d, m: %d)\n", actual_count, mask.size, (short)max);
 
 	if(actual_count == 0) return;
 
-	LIB_DEBUG_PRINT_SAFE("Kernel : waitfor internal proceeding\n");
+	LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : waitfor internal proceeding\n");
 
 	// Create storage for monitor context
@@ -556,5 +556,5 @@
 			*mask.accepted = index;
 			if( mask.clauses[index].is_dtor ) {
-				LIB_DEBUG_PRINT_SAFE("Kernel : dtor already there\n");
+				LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : dtor already there\n");
 				verifyf( mask.clauses[index].size == 1        , "ERROR: Accepted dtor has more than 1 mutex parameter." );
 
@@ -568,5 +568,5 @@
 			}
 			else {
-				LIB_DEBUG_PRINT_SAFE("Kernel : thread present, baton-passing\n");
+				LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : thread present, baton-passing\n");
 
 				// Create the node specific to this wait operation
@@ -576,4 +576,12 @@
 				monitor_save;
 
+				LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel :  baton of %d monitors : ", count );
+				#ifdef __CFA_DEBUG_PRINT__
+					for( int i = 0; i < count; i++) {
+						LIB_DEBUG_PRINT_BUFFER_LOCAL( "%p %p ", monitors[i], monitors[i]->signal_stack.top );
+					}
+				#endif
+				LIB_DEBUG_PRINT_BUFFER_LOCAL( "\n");
+
 				// Set the owners to be the next thread
 				set_owner( monitors, count, next );
@@ -585,8 +593,8 @@
 				monitor_restore;
 
-				LIB_DEBUG_PRINT_SAFE("Kernel : thread present, returned\n");
+				LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : thread present, returned\n");
 			}
 
-			LIB_DEBUG_PRINT_SAFE("Kernel : accepted %d\n", *mask.accepted);
+			LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
 
 			return;
@@ -596,9 +604,9 @@
 
 	if( duration == 0 ) {
-		LIB_DEBUG_PRINT_SAFE("Kernel : non-blocking, exiting\n");
+		LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : non-blocking, exiting\n");
 
 		unlock_all( locks, count );
 
-		LIB_DEBUG_PRINT_SAFE("Kernel : accepted %d\n", *mask.accepted);
+		LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
 		return;
 	}
@@ -607,5 +615,5 @@
 	verifyf( duration < 0, "Timeout on waitfor statments not supported yet.");
 
-	LIB_DEBUG_PRINT_SAFE("Kernel : blocking waitfor\n");
+	LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : blocking waitfor\n");
 
 	// Create the node specific to this wait operation
@@ -629,7 +637,7 @@
 	monitor_restore;
 
-	LIB_DEBUG_PRINT_SAFE("Kernel : exiting\n");
-
-	LIB_DEBUG_PRINT_SAFE("Kernel : accepted %d\n", *mask.accepted);
+	LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : exiting\n");
+
+	LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
 }
 
@@ -648,6 +656,9 @@
 
 static inline void set_owner( monitor_desc ** monitors, short count, thread_desc * owner ) {
-	for( int i = 0; i < count; i++ ) {
-		set_owner( monitors[i], owner );
+	monitors[0]->owner     = owner;
+	monitors[0]->recursion = 1;
+	for( int i = 1; i < count; i++ ) {
+		monitors[i]->owner     = owner;
+		monitors[i]->recursion = 0;
 	}
 }
@@ -667,4 +678,5 @@
 static inline thread_desc * next_thread( monitor_desc * this ) {
 	//Check the signaller stack
+	LIB_DEBUG_PRINT_SAFE("Kernel :  mon %p AS-stack top %p\n", this, this->signal_stack.top);
 	__condition_criterion_t * urgent = pop( &this->signal_stack );
 	if( urgent ) {
@@ -718,4 +730,5 @@
 	for(int i = 0; i < count; i++) {
 		(criteria[i]){ monitors[i], waiter };
+		LIB_DEBUG_PRINT_SAFE( "Kernel :  target %p = %p\n", criteria[i].target, &criteria[i] );
 		push( &criteria[i].target->signal_stack, &criteria[i] );
 	}
@@ -788,5 +801,5 @@
 	}
 
-	// LIB_DEBUG_PRINT_SAFE( "Runing %i\n", ready2run );
+	LIB_DEBUG_PRINT_SAFE( "Kernel :  Runing %i (%p)\n", ready2run, ready2run ? node->waiting_thread : NULL );
 	return ready2run ? node->waiting_thread : NULL;
 }
@@ -856,8 +869,10 @@
 	short size = 0;
 	for( int i = 0; i < mask.size; i++ ) {
+		qsort( mask.clauses[i].list, mask.clauses[i].size );
 		for( int j = 0; j < mask.clauses[i].size; j++) {
 			insert_unique( storage, size, mask.clauses[i].list[j] );
 		}
 	}
+	// TODO insertion sort instead of this
 	qsort( storage, size );
 	return size;
Index: src/libcfa/concurrency/preemption.c
===================================================================
--- src/libcfa/concurrency/preemption.c	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/concurrency/preemption.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -380,5 +380,5 @@
 
 	if ( sigaction( sig, &act, NULL ) == -1 ) {
-		LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO,
+		LIB_DEBUG_PRINT_BUFFER_DECL(
 			" __kernel_sigaction( sig:%d, handler:%p, flags:%d ), problem installing signal handler, error(%d) %s.\n",
 			sig, handler, flags, errno, strerror( errno )
@@ -397,5 +397,5 @@
 
 	if ( sigaction( sig, &act, NULL ) == -1 ) {
-		LIB_DEBUG_PRINT_BUFFER_DECL( STDERR_FILENO,
+		LIB_DEBUG_PRINT_BUFFER_DECL(
 			" __kernel_sigdefault( sig:%d ), problem reseting signal handler, error(%d) %s.\n",
 			sig, errno, strerror( errno )
Index: src/libcfa/interpose.c
===================================================================
--- src/libcfa/interpose.c	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/interpose.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -127,10 +127,10 @@
 			va_end( args );
 
-			__lib_debug_write( STDERR_FILENO, abort_text, len );
-			__lib_debug_write( STDERR_FILENO, "\n", 1 );
+			__lib_debug_write( abort_text, len );
+			__lib_debug_write( "\n", 1 );
 		}
 
 		len = snprintf( abort_text, abort_text_size, "Cforall Runtime error (UNIX pid:%ld)\n", (long int)getpid() ); // use UNIX pid (versus getPid)
-		__lib_debug_write( STDERR_FILENO, abort_text, len );
+		__lib_debug_write( abort_text, len );
 
 
Index: src/libcfa/libhdr/libdebug.c
===================================================================
--- src/libcfa/libhdr/libdebug.c	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/libhdr/libdebug.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -9,6 +9,6 @@
 // Author           : Thierry Delisle
 // Created On       : Thu Mar 30 12:30:01 2017
-// Last Modified By : 
-// Last Modified On : 
+// Last Modified By :
+// Last Modified On :
 // Update Count     : 0
 //
@@ -28,14 +28,14 @@
 extern "C" {
 
-	void __lib_debug_write( int fd, const char *in_buffer, int len ) {
+	void __lib_debug_write( const char *in_buffer, int len ) {
 		// ensure all data is written
-		for ( int count = 0, retcode; count < len; count += retcode ) { 
+		for ( int count = 0, retcode; count < len; count += retcode ) {
 			in_buffer += count;
 
 			for ( ;; ) {
-				retcode = write( fd, in_buffer, len - count );
+				retcode = write( STDERR_FILENO, in_buffer, len - count );
 
 				// not a timer interrupt ?
-				if ( retcode != -1 || errno != EINTR ) break; 
+				if ( retcode != -1 || errno != EINTR ) break;
 			}
 
@@ -52,7 +52,7 @@
 		va_start( args, fmt );
 		__lib_debug_acquire();
-		
+
 		int len = vsnprintf( buffer, buffer_size, fmt, args );
-		__lib_debug_write( STDERR_FILENO, buffer, len );
+		__lib_debug_write( buffer, len );
 
 		__lib_debug_release();
@@ -64,7 +64,7 @@
 
 		va_start( args, fmt );
-		
+
 		int len = vsnprintf( buffer, buffer_size, fmt, args );
-		__lib_debug_write( STDERR_FILENO, buffer, len );
+		__lib_debug_write( buffer, len );
 
 		va_end( args );
@@ -73,5 +73,5 @@
 	void __lib_debug_print_vararg( const char fmt[], va_list args ) {
 		int len = vsnprintf( buffer, buffer_size, fmt, args );
-		__lib_debug_write( STDERR_FILENO, buffer, len );
+		__lib_debug_write( buffer, len );
 	}
 
@@ -80,7 +80,7 @@
 
 		va_start( args, fmt );
-		
+
 		int len = vsnprintf( in_buffer, in_buffer_size, fmt, args );
-		__lib_debug_write( STDERR_FILENO, in_buffer, len );
+		__lib_debug_write( in_buffer, len );
 
 		va_end( args );
Index: src/libcfa/libhdr/libdebug.h
===================================================================
--- src/libcfa/libhdr/libdebug.h	(revision 9f0b975c56f63828c0654bdcb93739755b3f66aa)
+++ src/libcfa/libhdr/libdebug.h	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
@@ -44,7 +44,8 @@
 extern "C" {
 #endif
-      #include <stdarg.h>
+	#include <stdarg.h>
+	#include <stdio.h>
 
-      extern void __lib_debug_write( int fd, const char *buffer, int len );
+      extern void __lib_debug_write( const char *buffer, int len );
       extern void __lib_debug_acquire();
       extern void __lib_debug_release();
@@ -58,5 +59,5 @@
 
 #ifdef __CFA_DEBUG_PRINT__
-	#define LIB_DEBUG_WRITE( fd, buffer, len )     __lib_debug_write( fd, buffer, len )
+	#define LIB_DEBUG_WRITE( buffer, len )         __lib_debug_write( buffer, len )
 	#define LIB_DEBUG_ACQUIRE()                    __lib_debug_acquire()
 	#define LIB_DEBUG_RELEASE()                    __lib_debug_release()
@@ -64,6 +65,6 @@
 	#define LIB_DEBUG_PRINT_NOLOCK(...)            __lib_debug_print_nolock (__VA_ARGS__)
 	#define LIB_DEBUG_PRINT_BUFFER(...)            __lib_debug_print_buffer (__VA_ARGS__)
-	#define LIB_DEBUG_PRINT_BUFFER_DECL(fd, ...)   char text[256]; int len = snprintf( text, 256, __VA_ARGS__ ); __lib_debug_write( fd, text, len );
-	#define LIB_DEBUG_PRINT_BUFFER_LOCAL(fd, ...)  len = snprintf( text, 256, __VA_ARGS__ ); __lib_debug_write( fd, text, len );
+	#define LIB_DEBUG_PRINT_BUFFER_DECL(...)       char __dbg_text[256]; int __dbg_len = snprintf( __dbg_text, 256, __VA_ARGS__ ); __lib_debug_write( __dbg_text, __dbg_len );
+	#define LIB_DEBUG_PRINT_BUFFER_LOCAL(...)      __dbg_len = snprintf( __dbg_text, 256, __VA_ARGS__ ); __lib_debug_write( __dbg_text, __dbg_len );
 #else
 	#define LIB_DEBUG_WRITE(...)               ((void)0)
