Index: trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality/SequenceComparisonRule.java
===================================================================
--- trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality/SequenceComparisonRule.java	(revision 1891)
+++ trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/taskequality/SequenceComparisonRule.java	(revision 1905)
@@ -147,6 +147,5 @@
         }
 
-        TaskEquality resultingEquality = requiredEqualityLevel != null ?
-            requiredEqualityLevel : TaskEquality.LEXICALLY_EQUAL;
+        TaskEquality resultingEquality = null;
         
         for (int i = 0; i < children1.size(); i++) {
@@ -158,9 +157,18 @@
             TaskEquality taskEquality = callRuleManager(child1, child2, resultingEquality);
 
-            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL)) {
+            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL) ||
+                ((requiredEqualityLevel != null) &&
+                 (!taskEquality.isAtLeast(requiredEqualityLevel))))
+            {
                 return TaskEquality.UNEQUAL;
             }
             
-            resultingEquality = resultingEquality.getCommonDenominator(taskEquality);
+            if (resultingEquality == null) {
+                // non identical sequences can be at most lexically equal
+                resultingEquality = TaskEquality.LEXICALLY_EQUAL.getCommonDenominator(taskEquality);
+            }
+            else {
+                resultingEquality = resultingEquality.getCommonDenominator(taskEquality);
+            }
         }
 
@@ -228,6 +236,5 @@
         }
 
-        TaskEquality resultingEquality = requiredEqualityLevel != null ?
-            requiredEqualityLevel : TaskEquality.LEXICALLY_EQUAL;
+        TaskEquality resultingEquality = TaskEquality.LEXICALLY_EQUAL;
         
         for (int i = 0; i < sequence1.size(); i++) {
@@ -239,9 +246,18 @@
             TaskEquality taskEquality = callRuleManager(child1, child2, resultingEquality);
 
-            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL)) {
+            if ((taskEquality == null) || (taskEquality == TaskEquality.UNEQUAL) ||
+                ((requiredEqualityLevel != null) &&
+                 (!taskEquality.isAtLeast(requiredEqualityLevel))))
+            {
                 return TaskEquality.UNEQUAL;
             }
             
-            resultingEquality = resultingEquality.getCommonDenominator(taskEquality);
+            if (resultingEquality == null) {
+                // non identical sequences can be at most lexically equal
+                resultingEquality = TaskEquality.LEXICALLY_EQUAL.getCommonDenominator(taskEquality);
+            }
+            else {
+                resultingEquality = resultingEquality.getCommonDenominator(taskEquality);
+            }
         }
 
