Index: libcfa/src/executor.cfa
===================================================================
--- libcfa/src/executor.cfa	(revision 768bd55614144e92dcfe87a8d037c982f47a2e53)
+++ libcfa/src/executor.cfa	(revision 8b16980c32b666a9179e12e780d2eb89df7d5941)
@@ -8,10 +8,10 @@
 #include <stdio.h>
 
-forall( otype T | is_node(T) | is_monitor(T) ) {
-    monitor Buffer {					// unbounded buffer
-	__queue_t( T ) queue;				// unbounded list of work requests
-	condition delay;
-    }; // Buffer
-
+forall( dtype T )
+monitor Buffer {					// unbounded buffer
+    __queue_t( T ) queue;				// unbounded list of work requests
+    condition delay;
+}; // Buffer
+forall( dtype T | is_node(T) ) {
     void insert( Buffer( T ) & mutex buf, T * elem ) with(buf) {
 	append( queue, elem );				// insert element into buffer
@@ -20,6 +20,6 @@
 
     T * remove( Buffer( T ) & mutex buf ) with(buf) {
-	if ( ! queue ) wait( delay );			// no request to process ? => wait
-	return pop_head( queue );
+	if ( queue.head != 0 ) wait( delay );			// no request to process ? => wait
+//	return pop_head( queue );
     } // remove
 } // distribution
