Index: trunk/java-utils/src/main/java/de/ugoe/cs/util/console/Command.java
===================================================================
--- trunk/java-utils/src/main/java/de/ugoe/cs/util/console/Command.java	(revision 661)
+++ trunk/java-utils/src/main/java/de/ugoe/cs/util/console/Command.java	(revision 664)
@@ -27,7 +27,8 @@
 	/**
 	 * <p>
-	 * Sends information about how to use a command to the console.
+	 * Returns a string the contains information about how to use the command.
 	 * </p>
+	 * @return help string
 	 */
-	public void help();
+	public String help();
 }
Index: trunk/java-utils/src/main/java/de/ugoe/cs/util/console/CommandExecuter.java
===================================================================
--- trunk/java-utils/src/main/java/de/ugoe/cs/util/console/CommandExecuter.java	(revision 661)
+++ trunk/java-utils/src/main/java/de/ugoe/cs/util/console/CommandExecuter.java	(revision 664)
@@ -10,4 +10,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.Enumeration;
 import java.util.List;
@@ -138,5 +140,5 @@
             }
             catch (InvalidParameterException e) {
-                cmd.help();
+                Console.println("Usage: " + cmd.help());
             }
         }
@@ -181,6 +183,6 @@
      * @return an array containing the names of the available commands.
      */
-    public String[] getAvailableCommands() {
-        List<String> commands = new ArrayList<String>();
+    public Command[] getAvailableCommands() {
+        List<Command> commands = new ArrayList<Command>();
         List<String> packages = new ArrayList<String>();
         packages.addAll(commandPackageList);
@@ -251,4 +253,13 @@
         }
         
+        Collections.sort(classNames, new Comparator<String>() {
+            @Override
+            public int compare(String arg1, String arg2) {
+                String str1 = arg1.substring(arg1.lastIndexOf('.') + cmdPrefix.length() + 1);
+                String str2 = arg2.substring(arg2.lastIndexOf('.') + cmdPrefix.length() + 1);
+                return str1.compareTo(str2);
+            }
+            
+        });
         for (String className : classNames) {
             String commandStr =
@@ -261,12 +272,12 @@
                 // class may still be inner classes. Therefore load the command, to
                 // see if it is really available and a command.
-                if (loadCMD(className) != null) {
-                    commands.add(commandStr);
+                Command cmd = loadCMD(className);
+                if (cmd != null) {
+                    commands.add(cmd);
                 }
             }
         }
         
-        String[] commandArray = commands.toArray(new String[commands.size()]);
-        Arrays.sort(commandArray);
+        Command[] commandArray = commands.toArray(new Command[commands.size()]);
         return commandArray;
     }
Index: trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexec.java
===================================================================
--- trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexec.java	(revision 661)
+++ trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexec.java	(revision 664)
@@ -63,6 +63,6 @@
 	 */
 	@Override
-	public void help() {
-		Console.println("Usage: exec <filename>");
+	public String help() {
+		return "exec <filename>";
 	}
 }
Index: trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexit.java
===================================================================
--- trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexit.java	(revision 661)
+++ trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDexit.java	(revision 664)
@@ -4,5 +4,4 @@
 
 import de.ugoe.cs.util.console.Command;
-import de.ugoe.cs.util.console.Console;
 
 /**
@@ -22,6 +21,6 @@
 	 */
 	@Override
-	public void help() {
-		Console.println("Usage: exit");
+	public String help() {
+		return "exit";
 	}
 
Index: trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDlistCommands.java
===================================================================
--- trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDlistCommands.java	(revision 664)
+++ trunk/java-utils/src/main/java/de/ugoe/cs/util/console/defaultcommands/CMDlistCommands.java	(revision 664)
@@ -0,0 +1,44 @@
+
+package de.ugoe.cs.util.console.defaultcommands;
+
+import java.util.List;
+
+import de.ugoe.cs.util.console.Command;
+import de.ugoe.cs.util.console.CommandExecuter;
+import de.ugoe.cs.util.console.Console;
+
+/**
+ * <p>
+ * Command to list all events (symbols) known to a usage profile (stochastic process).
+ * </p>
+ * 
+ * @author Steffen Herbold
+ * @version 1.0
+ */
+public class CMDlistCommands implements Command {
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see de.ugoe.cs.util.console.Command#run(java.util.List)
+     */
+    @Override
+    public void run(List<Object> parameters) {
+        Command[] commands = CommandExecuter.getInstance().getAvailableCommands();
+
+        for (Command command : commands) {
+            Console.println(command.help());
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see de.ugoe.cs.util.console.Command#help()
+     */
+    @Override
+    public String help() {
+        return "listCommands";
+    }
+
+}
