Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java	(revision 108)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java	(revision 109)
@@ -4,4 +4,5 @@
 import de.uni_hildesheim.sse.model.cst.OCLFeatureCall;
 import de.uni_hildesheim.sse.model.cst.VariablePool;
+import de.uni_hildesheim.sse.model.varModel.datatypes.Enum;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
 import de.uni_hildesheim.sse.trans.in.AbstractReader;
@@ -19,5 +20,5 @@
     
     /**
-     * Returns this condition as a {@link ConstraintSyntaxTree}.
+     * Returns this condition as a {@link ConstraintSyntaxTree} in pure boolean format.
      * @param reader The reader to get the variables from.
      * @return A {@link ConstraintSyntaxTree} representing this condition. <code>null</code> if condition is optimized
@@ -25,5 +26,16 @@
      * @throws ParserException If the conditions contains an operation, that is not supported by the parser.
      */
-    abstract ConstraintSyntaxTree toConstraintSyntaxTree(AbstractReader reader) throws ParserException;
+    abstract ConstraintSyntaxTree toPureBooleanConstraintSyntaxTree(AbstractReader reader) throws ParserException;
+    
+    /**
+     * Returns this condition as a {@link ConstraintSyntaxTree}.
+     * @param reader The reader to get the variables from.
+     * @param tristate The Tristate datatype.
+     * @return A {@link ConstraintSyntaxTree} representing this condition. <code>null</code> if condition is optimized
+     *         out.
+     * @throws ParserException If the conditions contains an operation, that is not supported by the parser.
+     */
+    abstract ConstraintSyntaxTree toNotBooleanConstraintSyntaxTree(AbstractReader reader, Enum tristate)
+        throws ParserException;
     
     /**
@@ -104,5 +116,5 @@
     
     /**
-     * Converts the condition into a {@link ConstraintSyntaxTree}.
+     * Converts the condition into a pure boolean {@link ConstraintSyntaxTree}.
      * @param reader The reader to get the variables from.
      * @param condition A string representing the condition as read from a .rsf file.
@@ -111,6 +123,6 @@
      * @throws ParserException If the conditions contains an operation, that is not supported by the parser.
      */
-    protected ConstraintSyntaxTree getConstraintSyntaxTree(AbstractReader reader, String condition, String variable)
-        throws ParserException {
+    protected ConstraintSyntaxTree getPureBooleanConstraintSyntaxTree(AbstractReader reader, String condition,
+            String variable) throws ParserException {
         
         condition = condition.replace(" ", "");
@@ -174,9 +186,23 @@
             StringBuffer right = new StringBuffer();
             split(condition, highestOperandPos, highestOperandLevel, left, right);
-            result = new OCLFeatureCall(getConstraintSyntaxTree(reader, left.toString(), variable), highestOperand,
-                    getConstraintSyntaxTree(reader, right.toString(), variable));
+            result = new OCLFeatureCall(getPureBooleanConstraintSyntaxTree(reader, left.toString(), variable),
+                    highestOperand, getPureBooleanConstraintSyntaxTree(reader, right.toString(), variable));
         }
         
         return result;
+    }
+    
+    /**
+     * Converts the condition into a {@link ConstraintSyntaxTree}.
+     * @param reader The reader to get the variables from.
+     * @param condition A string representing the condition as read from a .rsf file.
+     * @param variable The variable that depends on the condition (used to handle 'm').
+     * @return A {@link ConstraintSyntaxTree} representing the condition. <code>null</code> if always true.
+     * @throws ParserException If the conditions contains an operation, that is not supported by the parser.
+     */
+    protected ConstraintSyntaxTree getNotBooleanConstraintSyntaxTree(AbstractReader reader, String condition,
+            String variable) throws ParserException {
+        // TODO implement
+        return null;
     }
     
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java	(revision 108)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java	(revision 109)
@@ -4,4 +4,5 @@
 import de.uni_hildesheim.sse.model.cst.OCLFeatureCall;
 import de.uni_hildesheim.sse.model.varModel.DecisionVariableDeclaration;
+import de.uni_hildesheim.sse.model.varModel.datatypes.Enum;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
 import de.uni_hildesheim.sse.trans.in.AbstractReader;
@@ -15,5 +16,6 @@
  * </code> <br />
  * <i>variable</i> can only be true, if <i>condition</i> is true. <br />
- * {@link RSFDependsCondition#getConstraintSyntaxTree(AbstractReader, String, String)} will convert it into: <br />
+ * {@link RSFDependsCondition#getPureBooleanConstraintSyntaxTree(AbstractReader, String, String)} will convert it into:
+ * <br />
  * <code>
  * NOT <i>variable</i> OR <i>condition</i>
@@ -42,9 +44,9 @@
     
     @Override
-    ConstraintSyntaxTree toConstraintSyntaxTree(AbstractReader reader) throws ParserException {
+    ConstraintSyntaxTree toPureBooleanConstraintSyntaxTree(AbstractReader reader) throws ParserException {
         DecisionVariableDeclaration varDecl = reader.getVariable(variable);
         OCLFeatureCall notVar = new OCLFeatureCall(varPool.obtainVariable(varDecl), OclKeyWords.NOT);
         
-        ConstraintSyntaxTree condition = getConstraintSyntaxTree(reader, this.condition, variable);
+        ConstraintSyntaxTree condition = getPureBooleanConstraintSyntaxTree(reader, this.condition, variable);
         
         ConstraintSyntaxTree result = null;
@@ -57,3 +59,9 @@
     }
     
+    @Override
+    ConstraintSyntaxTree toNotBooleanConstraintSyntaxTree(AbstractReader reader, Enum tristate) throws ParserException {
+        // TODO implement
+        return null;
+    }
+    
 }
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFItemSelectsCondition.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFItemSelectsCondition.java	(revision 108)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFItemSelectsCondition.java	(revision 109)
@@ -5,4 +5,5 @@
 import de.uni_hildesheim.sse.model.cst.Variable;
 import de.uni_hildesheim.sse.model.varModel.DecisionVariableDeclaration;
+import de.uni_hildesheim.sse.model.varModel.datatypes.Enum;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
 import de.uni_hildesheim.sse.trans.in.AbstractReader;
@@ -16,5 +17,6 @@
  * </code> <br />
  * <i>selectedVaraible</i> has to be set to true, if <i>variable</i> and <i>condition</i> are true. <br />
- * {@link RSFItemSelectsCondition#getConstraintSyntaxTree(AbstractReader, String, String)} will convert it to: <br />
+ * {@link RSFItemSelectsCondition#getPureBooleanConstraintSyntaxTree(AbstractReader, String, String)} will convert it
+ * to: <br />
  * <code>
  * (NOT <i>variable</i> OR NOT <i>condition</i>) OR (<i>variable</i> AND <i>selectedVaraible</i> AND <i>condition</i>)
@@ -53,5 +55,5 @@
     
     @Override
-    ConstraintSyntaxTree toConstraintSyntaxTree(AbstractReader reader) throws ParserException {
+    ConstraintSyntaxTree toPureBooleanConstraintSyntaxTree(AbstractReader reader) throws ParserException {
         DecisionVariableDeclaration varDecl = reader.getVariable(variable);
         Variable var = varPool.obtainVariable(varDecl);
@@ -62,5 +64,5 @@
         Variable selectedVar = varPool.obtainVariable(selectedVarDecl);
         
-        ConstraintSyntaxTree condition = getConstraintSyntaxTree(reader, this.condition, variable);
+        ConstraintSyntaxTree condition = getPureBooleanConstraintSyntaxTree(reader, this.condition, variable);
         
         ConstraintSyntaxTree result = null;
@@ -82,3 +84,9 @@
     }
     
+    @Override
+    ConstraintSyntaxTree toNotBooleanConstraintSyntaxTree(AbstractReader reader, Enum tristate) throws ParserException {
+        // TODO implement
+        return null;
+    }
+    
 }
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java	(revision 108)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java	(revision 109)
@@ -4,4 +4,5 @@
 import de.uni_hildesheim.sse.model.cst.OCLFeatureCall;
 import de.uni_hildesheim.sse.model.cst.Variable;
+import de.uni_hildesheim.sse.model.varModel.datatypes.Enum;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
 import de.uni_hildesheim.sse.trans.in.AbstractReader;
@@ -29,5 +30,5 @@
     
     @Override
-    ConstraintSyntaxTree toConstraintSyntaxTree(AbstractReader reader) throws ParserException {
+    ConstraintSyntaxTree toPureBooleanConstraintSyntaxTree(AbstractReader reader) throws ParserException {
         Variable var = varPool.obtainVariable(reader.getVariable(variable));
         Variable moduleVar = varPool.obtainVariable(reader.getVariable(moduleVariable));
@@ -35,4 +36,10 @@
         return new OCLFeatureCall(var, OclKeyWords.OR, new OCLFeatureCall(moduleVar, OclKeyWords.NOT));
     }
+    
+    @Override
+    ConstraintSyntaxTree toNotBooleanConstraintSyntaxTree(AbstractReader reader, Enum tristate) throws ParserException {
+        // Shouldn't be called since there are not separate _MODULe variables in not boolean models
+        return null;
+    }
 
 }
Index: /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java
===================================================================
--- /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java	(revision 108)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java	(revision 109)
@@ -125,5 +125,5 @@
             try {
                 Constraint constraint = new Constraint(model);
-                ConstraintSyntaxTree tree = condition.toConstraintSyntaxTree(this);
+                ConstraintSyntaxTree tree = condition.toPureBooleanConstraintSyntaxTree(this);
                 if (tree != null) {
                     constraint.setConsSyntax(tree);
@@ -172,5 +172,17 @@
         }
         
-        // TODO: 3. Add all conditions
+        // Add conditions
+        for (RSFCondition condition : conditions) {
+            try {
+                Constraint constraint = new Constraint(model);
+                ConstraintSyntaxTree tree = condition.toNotBooleanConstraintSyntaxTree(this, tristate);
+                if (tree != null) {
+                    constraint.setConsSyntax(tree);
+                    model.add(constraint);
+                }
+            } catch (CSTSemanticException e) {
+                LOGGER.exception(e);
+            }
+        }
     }
 
