Index: src/libcfa/concurrency/monitor.c
===================================================================
--- src/libcfa/concurrency/monitor.c	(revision 6a5be52db68460f917313bc7fb311cfb03b0f0c1)
+++ src/libcfa/concurrency/monitor.c	(revision b1e68d0353f497191202b2ee47853c063104f360)
@@ -21,4 +21,6 @@
 #include "kernel_private.h"
 
+#include "bits/algorithms.h"
+
 //-----------------------------------------------------------------------------
 // Forward declarations
@@ -291,5 +293,5 @@
 
 	// Sort monitors based on address -> TODO use a sort specialized for small numbers
-	qsort(this.m, count);
+	__libcfa_small_sort(this.m, count);
 
 	// Save previous thread context
@@ -492,4 +494,6 @@
 	set_owner( monitors, count, signallee );
 
+	LIB_DEBUG_PRINT_BUFFER_DECL( "Kernel : signal_block condition %p (s: %p)\n", this, signallee );
+
 	//Everything is ready to go to sleep
 	BlockInternal( locks, count, &signallee, 1 );
@@ -498,4 +502,6 @@
 	// WE WOKE UP
 
+
+	LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel :   signal_block returned\n" );
 
 	//We are back, restore the masks and recursions
@@ -869,5 +875,5 @@
 	short size = 0;
 	for( int i = 0; i < mask.size; i++ ) {
-		qsort( mask.clauses[i].list, mask.clauses[i].size );
+		__libcfa_small_sort( 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] );
@@ -875,5 +881,5 @@
 	}
 	// TODO insertion sort instead of this
-	qsort( storage, size );
+	__libcfa_small_sort( storage, size );
 	return size;
 }
