Index: libcfa/src/executor.cfa
===================================================================
--- libcfa/src/executor.cfa	(revision d30fdbcf79ad6405a42681f6b90a353a48ce87e7)
+++ libcfa/src/executor.cfa	(revision 7030dab75c493bbd89de53cb88e496019c794ff4)
@@ -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
