Index: kernel/generic/include/cpu.h
===================================================================
--- kernel/generic/include/cpu.h	(revision 9e050558f6fae9d4875108d79011987377ff23fe)
+++ kernel/generic/include/cpu.h	(revision bd01a4e2eea1f1c2d0ae1323bcebe495b503e8a1)
@@ -77,5 +77,5 @@
 	unsigned int id;
 	
-	int active;
+	bool active;
 	int tlb_active;
 
Index: kernel/generic/include/sysinfo/abi.h
===================================================================
--- kernel/generic/include/sysinfo/abi.h	(revision 9e050558f6fae9d4875108d79011987377ff23fe)
+++ kernel/generic/include/sysinfo/abi.h	(revision bd01a4e2eea1f1c2d0ae1323bcebe495b503e8a1)
@@ -66,4 +66,5 @@
 typedef struct {
 	unsigned int id;         /**< CPU ID as stored by kernel */
+	bool active;             /**< CPU is activate */
 	uint16_t frequency_mhz;  /**< Frequency in MHz */
 	uint64_t idle_ticks;     /**< Number of idle kernel quanta */
Index: kernel/generic/src/sysinfo/stats.c
===================================================================
--- kernel/generic/src/sysinfo/stats.c	(revision 9e050558f6fae9d4875108d79011987377ff23fe)
+++ kernel/generic/src/sysinfo/stats.c	(revision bd01a4e2eea1f1c2d0ae1323bcebe495b503e8a1)
@@ -116,4 +116,5 @@
 		
 		stats_cpus[i].id = cpus[i].id;
+		stats_cpus[i].active = cpus[i].active;
 		stats_cpus[i].frequency_mhz = cpus[i].frequency_mhz;
 		stats_cpus[i].busy_ticks = cpus[i].busy_ticks;
Index: uspace/app/tasks/tasks.c
===================================================================
--- uspace/app/tasks/tasks.c	(revision 9e050558f6fae9d4875108d79011987377ff23fe)
+++ uspace/app/tasks/tasks.c	(revision bd01a4e2eea1f1c2d0ae1323bcebe495b503e8a1)
@@ -164,8 +164,12 @@
 	size_t i;
 	for (i = 0; i < count; i++) {
-		printf("cpu%u: %" PRIu16 " MHz, busy ticks: "
-		    "%" PRIu64 ", idle ticks: %" PRIu64 "\n",
-		    cpus[i].id, cpus[i].frequency_mhz, cpus[i].busy_ticks,
-		    cpus[i].idle_ticks);
+		if (cpus[i].active) {
+			printf("cpu%u: %" PRIu16 " MHz, busy ticks: "
+			    "%" PRIu64 ", idle ticks: %" PRIu64 "\n",
+			    cpus[i].id, cpus[i].frequency_mhz, cpus[i].busy_ticks,
+			    cpus[i].idle_ticks);
+		} else {
+			printf("cpu%u: inactive\n", cpus[i].id);
+		}
 	}
 	
Index: uspace/app/top/screen.c
===================================================================
--- uspace/app/top/screen.c	(revision 9e050558f6fae9d4875108d79011987377ff23fe)
+++ uspace/app/top/screen.c	(revision bd01a4e2eea1f1c2d0ae1323bcebe495b503e8a1)
@@ -173,14 +173,17 @@
 	size_t i;
 	for (i = 0; i < data->cpus_count; i++) {
-		printf("cpu%u (%4" PRIu16 " MHz): busy ticks: "
-		    "%" PRIu64 ", idle ticks: %" PRIu64,
-		    data->cpus[i].id, data->cpus[i].frequency_mhz,
-		    data->cpus[i].busy_ticks, data->cpus[i].idle_ticks);
-		printf(", idle: ");
-		print_float(data->cpus_perc[i].idle, 2);
-		printf("%%, busy: ");
-		print_float(data->cpus_perc[i].busy, 2);
-		
-		printf("%%\n");
+		if (data->cpus[i].active) {
+			printf("cpu%u (%4" PRIu16 " MHz): busy ticks: "
+			    "%" PRIu64 ", idle ticks: %" PRIu64,
+			    data->cpus[i].id, data->cpus[i].frequency_mhz,
+			    data->cpus[i].busy_ticks, data->cpus[i].idle_ticks);
+			printf(", idle: ");
+			print_float(data->cpus_perc[i].idle, 2);
+			printf("%%, busy: ");
+			print_float(data->cpus_perc[i].busy, 2);
+			printf("%%\n");
+		} else
+			printf("cpu%u inactive\n", data->cpus[i].id);
+		
 		up_rows++;
 	}
