Index: /ModelTranslator/src/de/uni_hildesheim/sse/trans/convert/MaxTermConverter.java
===================================================================
--- /ModelTranslator/src/de/uni_hildesheim/sse/trans/convert/MaxTermConverter.java	(revision 208)
+++ /ModelTranslator/src/de/uni_hildesheim/sse/trans/convert/MaxTermConverter.java	(revision 209)
@@ -4,8 +4,8 @@
 import java.io.StringWriter;
 import java.math.BigInteger;
+import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.commons.io.output.WriterOutputStream;
@@ -50,5 +50,5 @@
      * Should avoid that complex constraints are translated twice.
      */
-    private Set<ConstraintSyntaxTree> complexConstraints = new HashSet<ConstraintSyntaxTree>();
+    private List<ConstraintSyntaxTree> translatedConstraints = new ArrayList<ConstraintSyntaxTree>();
     private Project project;
     private Map<AbstractVariable, Variable> variablesCache = new HashMap<AbstractVariable, Variable>();
@@ -118,6 +118,6 @@
         // Stop recursion and start translation!
         if (!handled) {
-            if (!complexConstraints.contains(originalConstraint)) {
-                complexConstraints.add(originalConstraint);
+            if (alreadyTranslated(originalConstraint)) {
+                translatedConstraints.add(originalConstraint);
                 
                 // Get an array of all variables in the constraint
@@ -158,4 +158,17 @@
             }
         }
+    }
+
+    /**
+     * Checks whether a semantically equal constraint was already translated to CNF.
+     * @param originalConstraint A constraint which shall be translated to CNF.
+     * @return <tt>true</tt> if a similar constraint was already translated, <tt>false</tt> ohterwise.
+     */
+    private boolean alreadyTranslated(ConstraintSyntaxTree originalConstraint) {
+        boolean alreadyTranslated = false;
+        for (int i = 0, n = translatedConstraints.size(); i < n && !alreadyTranslated; i++) {
+            alreadyTranslated = (translatedConstraints.get(i).isSemanticallyEqual(originalConstraint));
+        }
+        return alreadyTranslated;
     }
 
