Index: libcfa/src/concurrency/invoke.h
===================================================================
--- libcfa/src/concurrency/invoke.h	(revision 29cb30205cfe5f1c1292791fb73870b5ea4f8d7d)
+++ libcfa/src/concurrency/invoke.h	(revision 564148f8cd1b3c426655d3055974efb5e3824df3)
@@ -168,4 +168,5 @@
 		struct $thread * prev;
 		volatile unsigned long long ts;
+		int preferred;
 	};
 
Index: libcfa/src/concurrency/ready_queue.cfa
===================================================================
--- libcfa/src/concurrency/ready_queue.cfa	(revision 29cb30205cfe5f1c1292791fb73870b5ea4f8d7d)
+++ libcfa/src/concurrency/ready_queue.cfa	(revision 564148f8cd1b3c426655d3055974efb5e3824df3)
@@ -37,5 +37,5 @@
 #endif
 
-#define BIAS 8
+#define BIAS 64
 
 // returns the maximum number of processors the RWLock support
@@ -221,4 +221,12 @@
 	#if defined(BIAS) && !defined(__CFA_NO_STATISTICS__)
 		bool local = false;
+		int preferred =
+			//*
+			kernelTLS.this_processor ? kernelTLS.this_processor->id * 4 : -1;
+			/*/
+			thrd->link.preferred * 4;
+			//*/
+
+
 	#endif
 
@@ -231,9 +239,8 @@
 			unsigned rlow  = r % BIAS;
 			unsigned rhigh = r / BIAS;
-			if((0 != rlow) && kernelTLS.this_processor) {
+			if((0 != rlow) && preferred >= 0) {
 				// (BIAS - 1) out of BIAS chances
 				// Use perferred queues
-				unsigned pid = kernelTLS.this_processor->id * 4;
-				i = pid + (rhigh % 4);
+				i = preferred + (rhigh % 4);
 
 				#if !defined(__CFA_NO_STATISTICS__)
@@ -411,4 +418,7 @@
 	#endif
 
+	// Update the thread bias
+	thrd->link.preferred = w / 4;
+
 	// return the popped thread
 	return thrd;
Index: libcfa/src/concurrency/thread.cfa
===================================================================
--- libcfa/src/concurrency/thread.cfa	(revision 29cb30205cfe5f1c1292791fb73870b5ea4f8d7d)
+++ libcfa/src/concurrency/thread.cfa	(revision 564148f8cd1b3c426655d3055974efb5e3824df3)
@@ -38,4 +38,5 @@
 	link.next = 0p;
 	link.prev = 0p;
+	link.preferred = -1;
 
 	node.next = 0p;
