Index: /Code/ModelTranslator/input/testModel.rsf
===================================================================
--- /Code/ModelTranslator/input/testModel.rsf	(revision 106)
+++ /Code/ModelTranslator/input/testModel.rsf	(revision 107)
@@ -1,4 +1,4 @@
 # A small test-model
-# Has 6 variables (2 of them are tristates) and 6 constraints
+# Has 8 variables (2 of them are tristates, 1 string, 1 constant in constraints) and 7 constraints (1 string comparison)
 Item	a	boolean
 Item	b	boolean
@@ -11,4 +11,6 @@
 Item	e	tristate
 Item	f	tristate
-Depends	e	"f!='m'"
+Depends	e	"f!='m' || 'UML'"
 Depends	f	"e!='m'"
+Item	g	string
+Depends	c	"g='x86'"
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 106)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFCondition.java	(revision 107)
@@ -3,5 +3,4 @@
 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.cst.VariablePool;
 import de.uni_hildesheim.sse.model.varModel.datatypes.OclKeyWords;
@@ -38,36 +37,65 @@
     private ConstraintSyntaxTree getVariable(AbstractReader reader, String var, String originalVariable) {
         ConstraintSyntaxTree result = null;
+        // Negation
         if (var.startsWith("!")) {
-            Variable variable = varPool.obtainVariable(reader.getVariable(var.substring(1)));
+            var = var.substring(1);
+            ConstraintSyntaxTree variable = getVariable(reader, var, originalVariable);
             result = new OCLFeatureCall(variable, OclKeyWords.NOT);
             
+        // Comparison with constant booleans
         } else if (var.endsWith("!='y'")) {
             var = var.substring(0, var.length() - "!='y'".length());
             result = getVariable(reader, "!" + var, originalVariable);
-            
         } else if (var.endsWith("='y'")) {
             var = var.substring(0, var.length() - "='y'".length());
             result = getVariable(reader, var, originalVariable);
-            
         } else if (var.endsWith("!='n'")) {
             var = var.substring(0, var.length() - "!='n'".length());
             result = getVariable(reader, var, originalVariable);
-            
         } else if (var.endsWith("='n'")) {
             var = var.substring(0, var.length() - "='n'".length());
             result = getVariable(reader, "!" + var, originalVariable);
             
+        // Comparison with module version
+        // Replace variable with it's _MODULE version (negate if needed)
         } else if (var.endsWith("!='m'")) {
             var = var.substring(0, var.length() - "!='m'".length());
             result = getVariable(reader, "!" + var + "_MODULE", originalVariable);
-            
         } else if (var.endsWith("='m'")) {
             var = var.substring(0, var.length() - "='m'".length());
             result = getVariable(reader, var + "_MODULE", originalVariable);
             
+        // Comparison with other constants (for strings and integers)
+        // Remove all ' and handle it as a new variable
+        } else if (var.contains("!='")) {
+            StringBuffer buffer = new StringBuffer(var);
+            int index;
+            while ((index = buffer.indexOf("'")) != -1) {
+                buffer.deleteCharAt(index);
+            }
+            result = getVariable(reader, "!" + buffer.toString(), originalVariable);
+        } else if (var.contains("='")) {
+            StringBuffer buffer = new StringBuffer(var);
+            int index;
+            while ((index = buffer.indexOf("'")) != -1) {
+                buffer.deleteCharAt(index);
+            }
+            result = getVariable(reader, buffer.toString(), originalVariable);
+            
+            
+        // Module version of the variable
+        // Replace it with _MODULE version of original variable
         } else if (var.equals("'m'")) {
             result = getVariable(reader, originalVariable + "_MODULE", originalVariable);
             
+        // Normal variable (or constant in ' (like 'UML'))
         } else {
+            // Remove ' around variable names
+            if (var.startsWith("'")) {
+                var = var.substring(1);
+            }
+            if (var.endsWith("'")) {
+                var = var.substring(0, var.length() - 1);
+            }
             result = varPool.obtainVariable(reader.getVariable(var));
         }
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 106)
+++ /Code/ModelTranslator/src/de/uni_hildesheim/sse/trans/in/rsf/RSFReader.java	(revision 107)
@@ -111,9 +111,8 @@
                 break;
             case INTEGER:
-                //
-                break;
             case HEX:
-                break;
             case STRING:
+                // Ignore these variables here; they will be created depending on the comparisons found in the
+                //  constraints
                 break;
             default:
Index: /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java
===================================================================
--- /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java	(revision 106)
+++ /Code/ModelTranslator/test/de/uni_hildesheim/sse/trans/in/rsf/RSFReaderTest.java	(revision 107)
@@ -3,9 +3,12 @@
 import java.io.File;
 import java.io.IOException;
+import java.util.List;
 
 import org.junit.Assert;
 import org.junit.Test;
 
+import de.uni_hildesheim.sse.model.varModel.AbstractVariable;
 import de.uni_hildesheim.sse.model.varModel.Project;
+import de.uni_hildesheim.sse.model.varModel.datatypes.BooleanType;
 import de.uni_hildesheim.sse.model.varModel.filter.ConstraintFinder;
 import de.uni_hildesheim.sse.model.varModel.filter.DeclarationFinder;
@@ -35,6 +38,6 @@
         
         ConstraintFinder cFinder = new ConstraintFinder(project);
-        // 6 conditions + 2 _MODULE conditions
-        Assert.assertEquals(8, cFinder.getConstraints().size());
+        // 7 conditions + 2 _MODULE conditions
+        Assert.assertEquals(9, cFinder.getConstraints().size());
         
 //        for (Constraint c : cFinder.getConstraints()) {
@@ -43,6 +46,13 @@
         
         DeclarationFinder varFinder = new DeclarationFinder(project, FilterType.ALL, null);
-        // 6 variables + 2 _MODULE variables
-        Assert.assertEquals(8, varFinder.getVariableDeclarations(VisibilityType.ALL).size());
+        // 4 boolean variables + 2 tristate variables (with another _MODULE version each) + 1 constant
+        //  + 1 string comparison
+        List<AbstractVariable> variables = varFinder.getVariableDeclarations(VisibilityType.ALL);
+        Assert.assertEquals(10, variables.size());
+        
+        for (AbstractVariable var : variables) {
+            Assert.assertFalse(var.getName().contains("'"));
+            Assert.assertEquals(BooleanType.TYPE, var.getType());
+        }
     }
     
