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 2146)
+++ trunk/autoquest-ui-swt/src/main/java/de/ugoe/cs/autoquest/ui/swt/ShowTaskTreeDialog.java	(revision 2147)
@@ -28,4 +28,5 @@
 import java.util.LinkedList;
 import java.util.List;
+import java.util.TreeMap;
 
 import org.eclipse.swt.SWT;
@@ -613,9 +614,9 @@
         Collection<ITask> allTasks = taskModel.getTasks();
         
-        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>();
+        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<>();
         
         TreeItem root = new TreeItem(modelTree, SWT.NULL);
@@ -623,5 +624,5 @@
         root.setData(taskModel);
 
-        createSortedTaskLists(allTasks, sequences, iterations, selections, optionals, others);
+        createSortedTaskMaps(allTasks, sequences, iterations, selections, optionals, others);
         
         //allTasks = createSortedTaskList(allTasks);
@@ -639,12 +640,12 @@
      *
      */
-    private void createSortedTaskLists(Collection<ITask> allTasks,
-                                       List<ITask>       sequences,
-                                       List<ITask>       iterations,
-                                       List<ITask>       selections,
-                                       List<ITask>       optionals,
-                                       List<ITask>       others)
+    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)
     {
-        List<ITask> toAdd;
+        TreeMap<Integer, ITask> toAdd;
         
         for (ITask task : allTasks) {
@@ -666,38 +667,5 @@
             
             int taskValue = taskModel.getTaskInfo(task).getMeasureValue(TaskMetric.EVENT_COVERAGE);
-            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);
+            toAdd.put(taskValue, task);
         }
     }
@@ -877,5 +845,24 @@
      *
      */
-    private void createModelTreeItemFor(List<ITask> taskList, String name, TreeItem parent) {
+    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);
+        }
+        
+        
         TreeItem item = new TreeItem(parent, SWT.NULL);
         item.setText(name);
