Index: /ModelTranslator/resources/testdata/input/SingleDependsTest.rsf
===================================================================
--- /ModelTranslator/resources/testdata/input/SingleDependsTest.rsf	(revision 402)
+++ /ModelTranslator/resources/testdata/input/SingleDependsTest.rsf	(revision 403)
@@ -1,10 +1,20 @@
-Item	VAR1	boolean
-Item	VAR2	boolean
-Item	VAR3	tristate
-Item	VAR4	tristate
-HasPrompts	VAR1	1
-HasPrompts	VAR2	1
-HasPrompts	VAR3	1
-HasPrompts	VAR4	1
-Depends	VAR1	VAR2
-Depends	VAR3	VAR4
+Item	BOOL1	boolean
+Item	BOOL2	boolean
+Item	BOOL3	boolean
+Item	BOOL4	boolean
+Item	TRI1	tristate
+Item	TRI2	tristate
+Item	TRI3	tristate
+Item	TRI4	tristate
+HasPrompts	BOOL1	1
+HasPrompts	BOOL2	1
+HasPrompts	BOOL3	1
+HasPrompts	BOOL4	1
+HasPrompts	TRI1	1
+HasPrompts	TRI2	1
+HasPrompts	TRI3	1
+HasPrompts	TRI4	1
+Depends	BOOL1	BOOL2
+Depends	TRI1	TRI2
+Depends	BOOL3	TRI3
+Depends	TRI4	BOOL4
Index: /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java
===================================================================
--- /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java	(revision 402)
+++ /ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFDependsCondition.java	(revision 403)
@@ -6,14 +6,9 @@
 import de.uni_hildesheim.sse.model.cst.ConstraintSyntaxTree;
 import de.uni_hildesheim.sse.model.cst.OCLFeatureCall;
-import de.uni_hildesheim.sse.model.cst.Variable;
-import de.uni_hildesheim.sse.model.varModel.AbstractVariable;
 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.model.varModel.filter.DeclrationInConstraintFinder;
 import de.uni_hildesheim.sse.trans.in.AbstractReader;
 import de.uni_hildesheim.sse.trans.in.ParserException;
-import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory;
-import de.uni_hildesheim.sse.utils.logger.EASyLoggerFactory.EASyLogger;
 
 /**
@@ -39,6 +34,6 @@
  */
 class RSFDependsCondition extends RSFCondition {
-    private static final EASyLogger LOGGER = EASyLoggerFactory.INSTANCE.getLogger(RSFDependsCondition.class,
-            "RSFDependsCondition");
+//    private static final EASyLogger LOGGER = EASyLoggerFactory.INSTANCE.getLogger(RSFDependsCondition.class,
+//            "RSFDependsCondition");
 
     private RSFItem variable;
@@ -70,5 +65,4 @@
     @Override
     List<ConstraintSyntaxTree> toPureBooleanConstraintSyntaxTree(RSFReader reader) throws ParserException {
-        ConstraintSyntaxTree notVar = getUnselectedVariable(variable, reader);
         
         List<ConstraintSyntaxTree> conditionTrees = new ArrayList<ConstraintSyntaxTree>();
@@ -90,41 +84,33 @@
         if (hasAtLeastOneNotNull) {
             
-            ConstraintSyntaxTree tree = notVar;
-            List<RSFItem> tristates = new ArrayList<RSFItem>();
-            
-            for (ConstraintSyntaxTree conditionTree : conditionTrees) {
-                if (conditionTree != null) {
-                    tree = new OCLFeatureCall(tree, OclKeyWords.OR, conditionTree);
-                    
-                    DeclrationInConstraintFinder declFinder = new DeclrationInConstraintFinder(conditionTree);
-                    for (AbstractVariable var : declFinder.getDeclarations()) {
-                        RSFItem varItem = reader.getItemNoCreate(var.getName());
-                        if (varItem != null && varItem.getDatatype().equals(Datatype.TRISTATE)) {
-                            tristates.add(varItem);
-                        }
+            if (variable.getDatatype().equals(Datatype.TRISTATE)) {
+                
+                ConstraintSyntaxTree varTree = getUnselectedVariable(variable, reader);
+                
+                DecisionVariableDeclaration moduleDecl = reader.getVariable(variable.getName() + "_MODULE");
+                ConstraintSyntaxTree moduleTree = new OCLFeatureCall(varPool.obtainVariable(moduleDecl),
+                        OclKeyWords.NOT);
+                
+                for (ConstraintSyntaxTree conditionTree : conditionTrees) {
+                    if (conditionTree != null) {
+                        varTree = new OCLFeatureCall(varTree, OclKeyWords.OR, conditionTree);
+                        moduleTree = new OCLFeatureCall(moduleTree, OclKeyWords.OR, conditionTree);
                     }
                 }
-            }
-            
-            result.add(tree);
-            
-            if (tristates.size() > 1) {
-                // TODO: what to do?
-                LOGGER.debug("More than 1 tristate in Depends condition");
-            } else if (tristates.size() == 1) {
-                if (variable.getDatatype().equals(Datatype.TRISTATE)) {
-                    DecisionVariableDeclaration moduleVarDecl = reader.getVariable(variable.getName() + "_MODULE");
-                    Variable moduleVar = varPool.obtainVariable(moduleVarDecl);
-                    OCLFeatureCall notModuleVar = new OCLFeatureCall(moduleVar, OclKeyWords.NOT);
-                    
-                    DecisionVariableDeclaration conditionModuleVarDecl = reader.getVariable(tristates.get(0).getName()
-                            + "_MODULE");
-                    Variable conditionModuleVar = varPool.obtainVariable(conditionModuleVarDecl);
-                    
-                    result.add(new OCLFeatureCall(notModuleVar, OclKeyWords.OR, conditionModuleVar));
-                } else {
-                    // TODO: what to do?
-                    LOGGER.debug("Tristate variables in Depends condition but variable is not a tristate");
+                
+                result.add(varTree);
+                result.add(moduleTree);
+                
+            } else {
+                
+                ConstraintSyntaxTree tree = getUnselectedVariable(variable, reader);
+                
+                for (ConstraintSyntaxTree conditionTree : conditionTrees) {
+                    if (conditionTree != null) {
+                        tree = new OCLFeatureCall(tree, OclKeyWords.OR, conditionTree);
+                    }
                 }
+                
+                result.add(tree);
             }
         }
Index: /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java
===================================================================
--- /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java	(revision 402)
+++ /ModelTranslator/test/de/uni_hildesheim/sse/trans/scenario/RsfToDimacsTranslationTest.java	(revision 403)
@@ -259,5 +259,4 @@
      * @see <a href="https://projects.sse.uni-hildesheim.de/agilo/ModelTranslator/ticket/3">Requirement 3</a>
      */
-    @Ignore("Module part not working correct")
     @Test
     public void testSingleDepends() {
@@ -271,25 +270,54 @@
         String result = DimacsTestUtils.loadModel(input, noOptimization, true);
         System.out.println(result);
-        int var1 = DimacsTestUtils.getNumberOfVariable(result, "VAR1");
-        int var2 = DimacsTestUtils.getNumberOfVariable(result, "VAR2");
-        int var3 = DimacsTestUtils.getNumberOfVariable(result, "VAR3");
-        int var3Module = DimacsTestUtils.getNumberOfVariable(result, "VAR3_MODULE");
-        int var4 = DimacsTestUtils.getNumberOfVariable(result, "VAR4");
-        int var4Module = DimacsTestUtils.getNumberOfVariable(result, "VAR4_MODULE");
-        
-        /*
-         * Test whether the following constraints are included:
-         * - VAR1 depends from VAR2
-         *  -> VAR2 or Not(VAR1)
-         * - VAR3 depends from VAR4
-         *  -> Not(VAR3) or VAR4 or VAR4_MODULE
-         *  -> Not(VAR3_MODULE) or VAR4 or VAR4_MODULE
-         */
-        Assert.assertTrue("Error, missing: VAR2 or Not(VAR1)",
-            DimacsTestUtils.containsConstraint(result, -var1, var2));
-        Assert.assertTrue("Error, missing: Not(VAR3) or VAR4 or VAR4_MODULE",
-            DimacsTestUtils.containsConstraint(result, -var3, var4, var4Module));
+        int bool1 = DimacsTestUtils.getNumberOfVariable(result, "BOOL1");
+        int bool2 = DimacsTestUtils.getNumberOfVariable(result, "BOOL2");
+        int bool3 = DimacsTestUtils.getNumberOfVariable(result, "BOOL3");
+        int bool4 = DimacsTestUtils.getNumberOfVariable(result, "BOOL4");
+        int tri1 = DimacsTestUtils.getNumberOfVariable(result, "TRI1");
+        int tri1Module = DimacsTestUtils.getNumberOfVariable(result, "TRI1_MODULE");
+        int tri2 = DimacsTestUtils.getNumberOfVariable(result, "TRI2");
+        int tri2Module = DimacsTestUtils.getNumberOfVariable(result, "TRI2_MODULE");
+        int tri3 = DimacsTestUtils.getNumberOfVariable(result, "TRI3");
+        int tri3Module = DimacsTestUtils.getNumberOfVariable(result, "TRI3_MODULE");
+        int tri4 = DimacsTestUtils.getNumberOfVariable(result, "TRI4");
+        int tri4Module = DimacsTestUtils.getNumberOfVariable(result, "TRI4_MODULE");
+        
+        /*
+         * Test boolean depends on boolean:
+         * - BOOL1 depends from BOOL2
+         *  -> BOOL2 or Not(BOOL1)
+         */
+        Assert.assertTrue("Error, missing: BOOL2 or Not(BOOL1)",
+            DimacsTestUtils.containsConstraint(result, -bool1, bool2));
+        
+        /*
+         * Test boolean depends on tristate:
+         * - BOOL3 depends from TRI3
+         *  -> TRI3 or TRI3_MODULe or Not(BOOL3)
+         */
+        Assert.assertTrue("Error, missing: TRI3 or TRI3_MODULE or Not(BOOL3)", 
+                DimacsTestUtils.containsConstraint(result, tri3, tri3Module, -bool3));
+        
+        /*
+         * Test tristate depends on boolean:
+         * - TRI4 depends from BOOL4
+         *  -> BOOL4 or Not(TRI4)
+         *  -> BOOL4 or Not(TRI4_MODULE)
+         */
+        Assert.assertTrue("Error, missing: BOOL4 or Not(TRI4)", 
+                DimacsTestUtils.containsConstraint(result, bool4, -tri4));
+        Assert.assertTrue("Error, missing: BOOL4 or Not(TRI4_MODULE)", 
+                DimacsTestUtils.containsConstraint(result, bool4, -tri4Module));
+        
+        /*
+         * Test tristate depends on tristate:
+         * - TRI1 depends from TRI2
+         *  -> Not(TRI1) or TRI2 or TRI2_MODULE
+         *  -> Not(TRI1_MODULE) or TRI2 or TRI2_MODULE
+         */
+        Assert.assertTrue("Error, missing: Not(TRI1) or TRI2 or TRI2_MODULE",
+                DimacsTestUtils.containsConstraint(result, -tri1, tri2, tri2Module));
         Assert.assertTrue("Error, missing: Not(VAR3_MODULE) or VAR4 or VAR4_MODULE",
-            DimacsTestUtils.containsConstraint(result, -var3Module, var4, var4Module));
+                DimacsTestUtils.containsConstraint(result, -tri1Module, tri2, tri2Module));
     }
     
