Index: libcfa/src/concurrency/kernel.hfa
===================================================================
--- libcfa/src/concurrency/kernel.hfa	(revision 200a2298cdba8448a5f6101cdffaee0b5450c42d)
+++ libcfa/src/concurrency/kernel.hfa	(revision a0e7d3c554ce9f8e9c053e7205c986b4961c56b9)
@@ -145,22 +145,7 @@
 void ^?{}(__intrusive_lane_t & this);
 
-// Counter used for wether or not the lanes are all empty
-struct __attribute__((aligned(128))) __snzi_node_t;
-struct __snzi_t {
-	unsigned mask;
-	int root;
-	__snzi_node_t * nodes;
-};
-
-void  ?{}( __snzi_t & this, unsigned depth );
-void ^?{}( __snzi_t & this );
-
 //TODO adjust cache size to ARCHITECTURE
 // Structure holding the relaxed ready queue
 struct __ready_queue_t {
-	// Data tracking how many/which lanes are used
-	// Aligned to 128 for cache locality
-	__snzi_t snzi;
-
 	// Data tracking the actual lanes
 	// On a seperate cacheline from the used struct since
Index: libcfa/src/concurrency/kernel_private.hfa
===================================================================
--- libcfa/src/concurrency/kernel_private.hfa	(revision 200a2298cdba8448a5f6101cdffaee0b5450c42d)
+++ libcfa/src/concurrency/kernel_private.hfa	(revision a0e7d3c554ce9f8e9c053e7205c986b4961c56b9)
@@ -284,9 +284,4 @@
 // Ready-Queue API
 //-----------------------------------------------------------------------
-// pop thread from the ready queue of a cluster
-// returns 0p if empty
-__attribute__((hot)) bool query(struct cluster * cltr);
-
-//-----------------------------------------------------------------------
 // push thread onto a ready queue for a cluster
 // returns true if the list was previously empty, false otherwise
Index: libcfa/src/concurrency/ready_queue.cfa
===================================================================
--- libcfa/src/concurrency/ready_queue.cfa	(revision 200a2298cdba8448a5f6101cdffaee0b5450c42d)
+++ libcfa/src/concurrency/ready_queue.cfa	(revision a0e7d3c554ce9f8e9c053e7205c986b4961c56b9)
@@ -17,5 +17,4 @@
 // #define __CFA_DEBUG_PRINT_READY_QUEUE__
 
-// #define USE_SNZI
 // #define USE_MPSC
 
@@ -29,5 +28,4 @@
 #include <unistd.h>
 
-#include "snzi.hfa"
 #include "ready_subqueue.hfa"
 
@@ -202,18 +200,8 @@
 void ^?{}(__ready_queue_t & this) with (this) {
 	verify( 1 == lanes.count );
-	#ifdef USE_SNZI
-		verify( !query( snzi ) );
-	#endif
 	free(lanes.data);
 }
 
 //-----------------------------------------------------------------------
-__attribute__((hot)) bool query(struct cluster * cltr) {
-	#ifdef USE_SNZI
-		return query(cltr->ready_queue.snzi);
-	#endif
-	return true;
-}
-
 static inline [unsigned, bool] idx_from_r(unsigned r, unsigned preferred) {
 	unsigned i;
@@ -293,20 +281,5 @@
 
 	// Actually push it
-	#ifdef USE_SNZI
-		bool lane_first =
-	#endif
-
 	push(lanes.data[i], thrd);
-
-	#ifdef USE_SNZI
-		// If this lane used to be empty we need to do more
-		if(lane_first) {
-			// Check if the entire queue used to be empty
-			first = !query(snzi);
-
-			// Update the snzi
-			arrive( snzi, i );
-		}
-	#endif
 
 	#if !defined(USE_MPSC)
@@ -351,9 +324,5 @@
 
 	// As long as the list is not empty, try finding a lane that isn't empty and pop from it
-	#ifdef USE_SNZI
-		while( query(snzi) ) {
-	#else
-		for(25) {
-	#endif
+	for(25) {
 		// Pick two lists at random
 		// unsigned ri = __tls_rand();
@@ -447,11 +416,4 @@
 	/* paranoid */ verify(lane.lock);
 
-	#ifdef USE_SNZI
-		// If this was the last element in the lane
-		if(emptied) {
-			depart( snzi, w );
-		}
-	#endif
-
 	// Unlock and return
 	__atomic_unlock(&lane.lock);
@@ -484,9 +446,4 @@
 
 				removed = true;
-				#ifdef USE_SNZI
-					if(emptied) {
-						depart( snzi, i );
-					}
-				#endif
 			}
 		__atomic_unlock(&lane.lock);
@@ -571,8 +528,4 @@
 	// grow the ready queue
 	with( cltr->ready_queue ) {
-		#ifdef USE_SNZI
-			^(snzi){};
-		#endif
-
 		// Find new count
 		// Make sure we always have atleast 1 list
@@ -598,14 +551,4 @@
 		// Update original
 		lanes.count = ncount;
-
-		#ifdef USE_SNZI
-			// Re-create the snzi
-			snzi{ log2( lanes.count / 8 ) };
-			for( idx; (size_t)lanes.count ) {
-				if( !is_empty(lanes.data[idx]) ) {
-					arrive(snzi, idx);
-				}
-			}
-		#endif
 	}
 
@@ -631,8 +574,4 @@
 
 	with( cltr->ready_queue ) {
-		#ifdef USE_SNZI
-			^(snzi){};
-		#endif
-
 		// Remember old count
 		size_t ocount = lanes.count;
@@ -685,14 +624,4 @@
 			fix(lanes.data[idx]);
 		}
-
-		#ifdef USE_SNZI
-			// Re-create the snzi
-			snzi{ log2( lanes.count / 8 ) };
-			for( idx; (size_t)lanes.count ) {
-				if( !is_empty(lanes.data[idx]) ) {
-					arrive(snzi, idx);
-				}
-			}
-		#endif
 	}
 
