Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/ModelTranslator.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/ModelTranslator.java	(revision 384)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/ModelTranslator.java	(revision 385)
@@ -54,5 +54,5 @@
         String version, OptimizationParameter optimizations) {
         
-        Project model = readSourceModel(in, inType, outType);
+        Project model = readSourceModel(in, inType, outType, optimizations);
         transformAndWriteModel(out, outType, comment, version, model, optimizations);
     }
@@ -154,7 +154,11 @@
      * @param outType Specification in which format <tt>in</tt> shall be translated. Must be one of {@link OutputType}.
      *     Depending of the {@link OutputType} some optimizations are already possible while reading the input model.
+     * @param optimizations Specification which optimizations shall be applied to the transformed model. Will only be
+     *     applied to transformations into CNF.
      * @return The read model or <tt>null</tt> if an error occurred.
      */
-    private static Project readSourceModel(File in, InputType inType, OutputType outType) {
+    private static Project readSourceModel(File in, InputType inType, OutputType outType,
+        OptimizationParameter optimizations) {
+        
         Project model = null;
 
@@ -164,5 +168,5 @@
         case MODEL:
             try {
-                reader = new ModelReader(in);
+                reader = new ModelReader(in, optimizations);
             } catch (IOException e) {
                 LOGGER.exception(e);
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/ModelReader.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/ModelReader.java	(revision 384)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/ModelReader.java	(revision 385)
@@ -24,4 +24,5 @@
 import de.uni_hildesheim.sse.model.varModel.datatypes.BooleanType;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
+import de.uni_hildesheim.sse.trans.convert.OptimizationParameter;
 import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory;
 import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory.EASyLogger;
@@ -42,14 +43,18 @@
     private Set<String> parsedConstraints;
     private VariablePool varPool;
+    private OptimizationParameter optimizations;
     
     /**
      * Loads a <a href="https://github.com/ckaestne/kconfigreader">KConfigReader</a> model file.
      * @param modelFile The model file to load.
+     * @param optimizations Specification which optimizations shall be applied
+     *     (some can already applied during parsing the model files)
      * @throws FileNotFoundException if the file does not exist, is a directory rather than a regular file,
      * or for some other reason cannot be opened for reading.
      */
-    public ModelReader(File modelFile) throws FileNotFoundException {
+    public ModelReader(File modelFile, OptimizationParameter optimizations) throws FileNotFoundException {
         reader = new BufferedReader(new FileReader(modelFile));
         parsedConstraints = new HashSet<String>();
+        this.optimizations = optimizations;
         
         String name = FilenameUtils.removeExtension(modelFile.getName());
@@ -206,5 +211,7 @@
         while ((line = reader.readLine()) != null) {
             // Skip lines starting with a #
-            if (line.charAt(0) != '#' && !parsedConstraints.contains(line)) {
+            if (line.charAt(0) != '#'
+                && (!parsedConstraints.contains(line) || !optimizations.removeDuplicatedConstraints())) {
+                
                 // Avoid parsing the same constraint twice
                 parsedConstraints.add(line);
Index: /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/ModelReaderTest.java
===================================================================
--- /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/ModelReaderTest.java	(revision 384)
+++ /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/ModelReaderTest.java	(revision 385)
@@ -17,4 +17,5 @@
 import de.uni_hildesheim.sse.model.varModel.filter.FilterType;
 import de.uni_hildesheim.sse.trans.AllTests;
+import de.uni_hildesheim.sse.trans.convert.OptimizationParameter;
 
 /**
@@ -32,5 +33,5 @@
     public void testRead() throws IOException {
         File modelFile = new File(AllTests.INPUT_FOLDER, "testModel.model");
-        ModelReader reader = new ModelReader(modelFile);
+        ModelReader reader = new ModelReader(modelFile, new OptimizationParameter(true));
         Project project = reader.read();
         
@@ -49,5 +50,5 @@
     public void testParseLine() throws IOException {
         File modelFile = new File(AllTests.INPUT_FOLDER, "testModel.model");
-        ModelReader reader = new ModelReader(modelFile);
+        ModelReader reader = new ModelReader(modelFile, new OptimizationParameter(true));
         
         ConstraintSyntaxTree tree = reader.parseLine("(!def(3C515_MODULE)|def(MODULES))", 0);
