Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision a5a01faa5bf89ae186de4f5e093ab07da1e31ff0)
+++ libcfa/src/concurrency/kernel.cfa	(revision e3cb4bfb07f1beece8e6bc8699603597de6bf262)
@@ -357,4 +357,7 @@
 				break RUNNING;
 			case TICKET_UNBLOCK:
+				#if !defined(__CFA_NO_STATISTICS__)
+					__tls_stats()->ready.threads.threads++;
+				#endif
 				// This is case 2, the racy case, someone tried to run this thread before it finished blocking
 				// In this case, just run it again.
@@ -370,4 +373,8 @@
 
 	__cfadbg_print_safe(runtime_core, "Kernel : core %p finished running thread %p\n", this, thrd_dst);
+
+	#if !defined(__CFA_NO_STATISTICS__)
+		__tls_stats()->ready.threads.threads--;
+	#endif
 
 	/* paranoid */ verify( ! __preemption_enabled() );
@@ -432,8 +439,8 @@
 	if (thrd->preempted == __NO_PREEMPTION) thrd->state = Ready;
 
+	// Dereference the thread now because once we push it, there is not guaranteed it's still valid.
+	struct cluster * cl = thrd->curr_cluster;
+
 	ready_schedule_lock();
-		// Dereference the thread now because once we push it, there is not guaranteed it's still valid.
-		struct cluster * cl = thrd->curr_cluster;
-
 		// push the thread to the cluster ready-queue
 		push( cl, thrd );
@@ -444,4 +451,13 @@
 		__wake_one( cl );
 	ready_schedule_unlock();
+
+	#if !defined(__CFA_NO_STATISTICS__)
+		if( kernelTLS().this_stats ) {
+			__tls_stats()->ready.threads.threads++;
+		}
+		else {
+			__atomic_fetch_add(&cl->stats->ready.threads.threads, 1, __ATOMIC_RELAXED);
+		}
+	#endif
 
 	/* paranoid */ verify( ! __preemption_enabled() );
Index: libcfa/src/concurrency/stats.cfa
===================================================================
--- libcfa/src/concurrency/stats.cfa	(revision a5a01faa5bf89ae186de4f5e093ab07da1e31ff0)
+++ libcfa/src/concurrency/stats.cfa	(revision e3cb4bfb07f1beece8e6bc8699603597de6bf262)
@@ -23,4 +23,5 @@
 		stats->ready.pick.pop .lsuccess = 0;
 		stats->ready.threads.migration = 0;
+		stats->ready.threads.threads   = 0;
 		stats->ready.sleep.halts   = 0;
 		stats->ready.sleep.cancels = 0;
@@ -61,4 +62,5 @@
 		__atomic_fetch_add( &cltr->ready.pick.pop .lsuccess, proc->ready.pick.pop .lsuccess, __ATOMIC_SEQ_CST ); proc->ready.pick.pop .lsuccess = 0;
 		__atomic_fetch_add( &cltr->ready.threads.migration , proc->ready.threads.migration , __ATOMIC_SEQ_CST ); proc->ready.threads.migration  = 0;
+		__atomic_fetch_add( &cltr->ready.threads.threads   , proc->ready.threads.threads   , __ATOMIC_SEQ_CST ); proc->ready.threads.threads    = 0;
 		__atomic_fetch_add( &cltr->ready.sleep.halts       , proc->ready.sleep.halts       , __ATOMIC_SEQ_CST ); proc->ready.sleep.halts        = 0;
 		__atomic_fetch_add( &cltr->ready.sleep.cancels     , proc->ready.sleep.cancels     , __ATOMIC_SEQ_CST ); proc->ready.sleep.cancels      = 0;
@@ -97,5 +99,5 @@
 			__cfaabi_bits_print_safe( STDOUT_FILENO,
 				"----- %s \"%s\" (%p) - Ready Q Stats -----\n"
-				"- total threads  : %'15" PRIu64 "run, %'15" PRIu64 "schd (%'" PRIu64 "ext, %'" PRIu64 "mig )\n"
+				"- total threads  : %'15" PRIu64 "run, %'15" PRIu64 "schd (%'" PRIu64 "ext, %'" PRIu64 "mig, %'" PRId64 " )\n"
 				"- push avg probe : %'3.2lf, %'3.2lfl (%'15" PRIu64 " attempts, %'15" PRIu64 " locals)\n"
 				"- ext  avg probe : %'3.2lf, %'3.2lfl (%'15" PRIu64 " attempts, %'15" PRIu64 " locals)\n"
@@ -106,5 +108,5 @@
 				, ready.pick.pop.success
 				, ready.pick.push.success + ready.pick.ext.success
-				, ready.pick.ext.success, ready.threads.migration
+				, ready.pick.ext.success, ready.threads.migration, ready.threads.threads
 				, push_len, lpush_len, ready.pick.push.attempt, ready.pick.push.local
 				, ext_len , lext_len , ready.pick.ext .attempt, ready.pick.ext .local
Index: libcfa/src/concurrency/stats.hfa
===================================================================
--- libcfa/src/concurrency/stats.hfa	(revision a5a01faa5bf89ae186de4f5e093ab07da1e31ff0)
+++ libcfa/src/concurrency/stats.hfa	(revision e3cb4bfb07f1beece8e6bc8699603597de6bf262)
@@ -68,4 +68,5 @@
 		struct {
 			volatile uint64_t migration;
+			volatile  int64_t threads; // number of threads in the system, includes only local change
 		} threads;
 		struct {
