Index: kernel/generic/src/console/cmd.c
===================================================================
--- kernel/generic/src/console/cmd.c	(revision e49e2348e7647a4dd4d4e2879082790396c4f4f3)
+++ kernel/generic/src/console/cmd.c	(revision 12081e6c739735a023fbc2886a6b6ed56a3f9cf6)
@@ -515,21 +515,29 @@
 int cmd_help(cmd_arg_t *argv)
 {
+	spinlock_lock(&cmd_lock);
+	
 	link_t *cur;
-
-	spinlock_lock(&cmd_lock);
-	
+	size_t len = 0;
 	for (cur = cmd_head.next; cur != &cmd_head; cur = cur->next) {
 		cmd_info_t *hlp;
-		
 		hlp = list_get_instance(cur, cmd_info_t, link);
+		
 		spinlock_lock(&hlp->lock);
-		
-		printf("%s - %s\n", hlp->name, hlp->description);
-
+		if (strlen(hlp->name) > len)
+			len = strlen(hlp->name);
 		spinlock_unlock(&hlp->lock);
 	}
 	
+	for (cur = cmd_head.next; cur != &cmd_head; cur = cur->next) {
+		cmd_info_t *hlp;
+		hlp = list_get_instance(cur, cmd_info_t, link);
+		
+		spinlock_lock(&hlp->lock);
+		printf("%-*s %s\n", len, hlp->name, hlp->description);
+		spinlock_unlock(&hlp->lock);
+	}
+	
 	spinlock_unlock(&cmd_lock);
-
+	
 	return 1;
 }
@@ -949,10 +957,15 @@
 int cmd_tests(cmd_arg_t *argv)
 {
+	size_t len = 0;
 	test_t *test;
+	for (test = tests; test->name != NULL; test++) {
+		if (strlen(test->name) > len)
+			len = strlen(test->name);
+	}
 	
 	for (test = tests; test->name != NULL; test++)
-		printf("%-10s %s%s\n", test->name, test->desc, (test->safe ? "" : " (unsafe)"));
-	
-	printf("%-10s Run all safe tests\n", "*");
+		printf("%-*s %s%s\n", len, test->name, test->desc, (test->safe ? "" : " (unsafe)"));
+	
+	printf("%-*s Run all safe tests\n", len, "*");
 	return 1;
 }
@@ -960,5 +973,5 @@
 static bool run_test(const test_t *test)
 {
-	printf("%s\t\t%s\n", test->name, test->desc);
+	printf("%s (%s)\n", test->name, test->desc);
 	
 	/* Update and read thread accounting
