Index: /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java
===================================================================
--- /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 2159)
+++ /trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 2160)
@@ -28,5 +28,4 @@
 import java.util.LinkedList;
 import java.util.List;
-import java.util.TreeMap;
 
 import org.eclipse.swt.SWT;
@@ -614,9 +613,9 @@
         Collection<ITask> allTasks = taskModel.getTasks();
         
-        TreeMap<Integer, ITask> sequences = new TreeMap<>();
-        TreeMap<Integer, ITask> iterations = new TreeMap<>();
-        TreeMap<Integer, ITask> selections = new TreeMap<>();
-        TreeMap<Integer, ITask> optionals = new TreeMap<>();
-        TreeMap<Integer, ITask> others = new TreeMap<>();
+        List<ITask> sequences = new ArrayList<ITask>();
+        List<ITask> iterations = new ArrayList<ITask>();
+        List<ITask> selections = new ArrayList<ITask>();
+        List<ITask> optionals = new ArrayList<ITask>();
+        List<ITask> others = new ArrayList<ITask>();
         
         TreeItem root = new TreeItem(modelTree, SWT.NULL);
@@ -624,5 +623,5 @@
         root.setData(taskModel);
 
-        createSortedTaskMaps(allTasks, sequences, iterations, selections, optionals, others);
+        createSortedTaskLists(allTasks, sequences, iterations, selections, optionals, others);
         
         //allTasks = createSortedTaskList(allTasks);
@@ -640,12 +639,12 @@
      *
      */
-    private void createSortedTaskMaps(Collection<ITask>       allTasks,
-                                      TreeMap<Integer, ITask> sequences,
-                                      TreeMap<Integer, ITask> iterations,
-                                      TreeMap<Integer, ITask> selections,
-                                      TreeMap<Integer, ITask> optionals,
-                                      TreeMap<Integer, ITask> others)
+    private void createSortedTaskLists(Collection<ITask> allTasks,
+                                       List<ITask>       sequences,
+                                       List<ITask>       iterations,
+                                       List<ITask>       selections,
+                                       List<ITask>       optionals,
+                                       List<ITask>       others)
     {
-        TreeMap<Integer, ITask> toAdd;
+        List<ITask> toAdd;
         
         for (ITask task : allTasks) {
@@ -667,5 +666,38 @@
             
             int taskValue = taskModel.getTaskInfo(task).getMeasureValue(TaskMetric.EVENT_COVERAGE);
-            toAdd.put(taskValue, task);
+            int start = 0;
+            int end = toAdd.size();
+            int center = 0;
+            int centerValue;
+            
+            while (start != end) {
+                center = start + ((end - start) / 2);
+                
+                if ((center != start) || (center != end)) {
+                    //centerValue = toAdd.get(center).getInstances().size();
+                    centerValue = taskModel.getTaskInfo(toAdd.get(center)).getMeasureValue
+                        (TaskMetric.EVENT_COVERAGE);
+                
+                    if (centerValue > taskValue) {
+                        start = Math.max(center, start + 1);
+                    }
+                    else if (centerValue < taskValue) {
+                        end = Math.min(center, end - 1);
+                    }
+                    else {
+                        // add the event directly where the center is, as the count of the center
+                        // and the new task are equal
+                        end = center;
+                        start = end;
+                        break;
+                    }
+                }
+                else {
+                    // add the event to the position denoted by the add index
+                    break;
+                }
+            }
+            
+            toAdd.add(start, task);
         }
     }
@@ -845,24 +877,5 @@
      *
      */
-    private void createModelTreeItemFor(TreeMap<Integer, ITask> taskMap,
-                                        String                  name,
-                                        TreeItem                parent)
-    {
-        ITask[] tasks = new ITask[taskMap.size()];
-        
-        // reverse the order
-        int i = 1;
-        for (ITask task : taskMap.values()) {
-            tasks[tasks.length - i++] = task;
-        }
-        
-        // create an array list for efficient access
-        List<ITask> taskList = new ArrayList<ITask>();
-       
-        for (ITask task : tasks) {
-            taskList.add(task);
-        }
-        
-        
+    private void createModelTreeItemFor(List<ITask> taskList, String name, TreeItem parent) {
         TreeItem item = new TreeItem(parent, SWT.NULL);
         item.setText(name);
