Index: /ModelTranslator/resources/testdata/input/tristateVariableTest.rsf
===================================================================
--- /ModelTranslator/resources/testdata/input/tristateVariableTest.rsf	(revision 394)
+++ /ModelTranslator/resources/testdata/input/tristateVariableTest.rsf	(revision 394)
@@ -0,0 +1,1 @@
+Item	VARIABLE	tristate
Index: /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java
===================================================================
--- /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java	(revision 393)
+++ /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFModuleCondition.java	(revision 394)
@@ -13,5 +13,5 @@
 
 /**
- * A condition to ensure that VAR_MODULE variable is only true, if VAR is true.
+ * A condition to ensure that either VAR_MODULE or VAR is true.
  * 
  * @author Adam Krafczyk
@@ -37,6 +37,9 @@
         Variable moduleVar = varPool.obtainVariable(reader.getVariable(moduleVariable));
         
+        OCLFeatureCall notVar = new OCLFeatureCall(var, OclKeyWords.NOT);
+        OCLFeatureCall notModuleVar = new OCLFeatureCall(moduleVar, OclKeyWords.NOT);
+        
         List<ConstraintSyntaxTree> list  = new ArrayList<ConstraintSyntaxTree>();
-        list.add(new OCLFeatureCall(var, OclKeyWords.OR, new OCLFeatureCall(moduleVar, OclKeyWords.NOT)));
+        list.add(new OCLFeatureCall(notVar, OclKeyWords.OR, notModuleVar));
         return list;
     }
Index: /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java
===================================================================
--- /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java	(revision 393)
+++ /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java	(revision 394)
@@ -17,4 +17,27 @@
  */
 public class RsfToDimacsTranslationTest {
+    
+    /**
+     * Tests whether tristate variables are translated correctly.
+     */
+    @Test
+    public void testTristateVariables() {
+        File input = new File(AllTests.INPUT_FOLDER, "tristateTestModel.rsf");
+        OptimizationParameter noOptimization = new OptimizationParameter();
+        
+        // Test precondition
+        Assert.assertFalse(noOptimization.hasAtLeastOneOption());
+        
+        // Translation
+        String result = DimacsTestUtils.loadModel(input, noOptimization, true);
+        
+        // Variables
+        int var = DimacsTestUtils.getNumberOfVariable(result, "VARIABLE");
+        int moduleVar = DimacsTestUtils.getNumberOfVariable(result, "VARIABLE_MODULE");
+        
+        // Conditions
+        Assert.assertTrue("Tristate conditition not included",
+                DimacsTestUtils.containsConstraint(result, -var, -moduleVar));
+    }
     
     /**
