Index: /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/utils/MostSimilarTaskDeterminer.java
===================================================================
--- /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/utils/MostSimilarTaskDeterminer.java	(revision 1969)
+++ /trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/utils/MostSimilarTaskDeterminer.java	(revision 1970)
@@ -76,4 +76,7 @@
     /** TODO comment */
     private long comparisonCounter = 0;
+    
+    /** TODO comment */
+    private long effectiveComparisonCounter = 0;
 
     /**
@@ -453,5 +456,6 @@
         
         Console.traceln
-            (Level.FINER, "all threads finished, " + comparisonCounter + " comparisons done");
+            (Level.FINER, "all threads finished, " + comparisonCounter + " comparisons done (" +
+             effectiveComparisonCounter + " effectively)");
         
         if (comparisonCounter != (((tasks.size() - 1) * tasks.size()) / 2)) {
@@ -565,4 +569,5 @@
             List<SimilarTasks> allMostSimilarTasks = new LinkedList<SimilarTasks>();
             int counter = 0;
+            int effectiveComparisons = 0;
             
             LEFT_HAND_TRAVERSAL:
@@ -590,4 +595,6 @@
                             continue RIGHT_HAND_TRAVERSAL;
                         }
+                        
+                        effectiveComparisons++;
 
                         SimilarTasks similarTasks1 = SimilarTasks.compareTraversals
@@ -637,4 +644,5 @@
                 mostSimilarTasksList.addAll(allMostSimilarTasks);
                 comparisonCounter += counter;
+                effectiveComparisonCounter += effectiveComparisons;
                 
                 for (int i = 0; i < unfinishedRunnables.size(); i++) {
@@ -660,4 +668,18 @@
             }
             else {
+                ITask firstTask1 = traversal1.get(0);
+                ITask firstTask2 = traversal2.get(0);
+                
+                if (!comparator.equals(firstTask1, firstTask2)) {
+                    return false;
+                }
+                
+                ITask lastTask1 = traversal1.get(traversal1.size() - 1);
+                ITask lastTask2 = traversal2.get(traversal2.size() - 1);
+                
+                if (!comparator.equals(lastTask1, lastTask2)) {
+                    return false;
+                }
+                
                 return true;
             }
@@ -665,11 +687,5 @@
 
         /**
-         * <p>
-         * TODO: comment
-         * </p>
          *
-         * @param similarTasks1
-         * @param similarTasks2
-         * @return
          */
         private SimilarTasks getSimilarTasksToPrefer(SimilarTasks similarTasks1,
@@ -770,12 +786,5 @@
 
         /**
-         * <p>
-         * TODO: comment
-         * </p>
-         *
-         * @param first
-         * @param eventCoverage
-         * @param taskModel2
-         * @return
+         * 
          */
         private int getTaskMetric(ITask task, TaskMetric metric) {
@@ -807,10 +816,5 @@
 
         /**
-         * <p>
-         * TODO: comment
-         * </p>
-         *
-         * @param first
-         * @return
+         * 
          */
         private long getFirstTimestamp(ITask task) {
