diff -purN busybox.ori/include/libbb.h busybox/include/libbb.h
--- busybox.ori/include/libbb.h	2004-03-21 14:39:35.000000000 +0100
+++ busybox-1.0/include/libbb.h	2004-03-21 14:45:35.000000000 +0100
@@ -447,6 +447,7 @@ typedef struct {
 	int ppid;
 #ifdef FEATURE_CPU_USAGE_PERCENTAGE
 	unsigned pcpu;
+	unsigned pscpu;
 	unsigned long stime, utime;
 #endif
 	char *cmd;
diff -purN busybox.ori/procps/top.c busybox/procps/top.c
--- busybox.ori/procps/top.c	2004-03-21 14:40:09.000000000 +0100
+++ busybox-1.0/procps/top.c	2004-03-21 17:27:52.961951448 +0100
@@ -289,6 +289,15 @@ static void do_stats(void)
 	    i = 999;
 	cur->pcpu = i;
 
+	/*
+	 * Calculate percent of system time from cpu time
+	 */
+	if (systime != 0) {
+    	    cur->pscpu = 100 * total_time / systime;
+	} else {
+	    cur->pscpu = 0;
+	}
+
     }
 
     /*
@@ -393,7 +402,7 @@ static void display_status(int count, in
 	
 #ifdef FEATURE_CPU_USAGE_PERCENTAGE
 	/* what info of the processes is shown */
-	printf("\n\e[7m  PID USER     STATUS   RSS  PPID %%CPU %%MEM COMMAND\e[0m\n");
+	printf("\n\e[7m  PID USER     STATUS   RSS  PPID %%CPU %%SCPU %%MEM COMMAND\e[0m\n");
 #else
 	printf("\n\e[7m  PID USER     STATUS   RSS  PPID %%MEM COMMAND\e[0m\n");
 #endif
@@ -410,9 +419,9 @@ static void display_status(int count, in
 		else
 			sprintf(rss_str_buf, "%7ld", s->rss);
 #ifdef FEATURE_CPU_USAGE_PERCENTAGE
-		printf("%5d %-8s %s  %s %5d %2d.%d %2u.%u ",
+		printf("%5d %-8s %s  %s %5d %2d.%d %2d.%d %2u.%u ",
 			s->pid, s->user, s->state, rss_str_buf, s->ppid,
-			s->pcpu/10, s->pcpu%10, pmem/10, pmem%10);
+			s->pcpu/10, s->pcpu%10,s->pscpu/10, s->pscpu%10, pmem/10, pmem%10);
 #else
 		printf("%5d %-8s %s  %s %5d %2u.%u ",
 			s->pid, s->user, s->state, rss_str_buf, s->ppid,