diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
index 973d8d55fa13640d987333d466fcda376c715eb4..7c94b20f817fa9e395d0027e4db06313279db29b 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
@@ -57,8 +57,13 @@ import org.apache.commons.lang3.Validate;
  * StringBoundary#matchesNoneOfValues} returns true, which are not in the boundary. <br>
  *
  * <p>Only value "a": <br>
- * {@code "a"} <br> Value "a" or value "b": <br> {@code "a","b"} <br> Not value "a" and not value
- * "b": <br> {@code not("a","b")} <br> All values: <br> {@code (empty String)}
+ * {@code "a"} <br>
+ * Value "a" or value "b": <br>
+ * {@code "a","b"} <br>
+ * Not value "a" and not value "b": <br>
+ * {@code not("a","b")} <br>
+ * All values: <br>
+ * {@code (empty String)}
  */
 public class StringBoundary extends AbstractBoundary<String> {
 
@@ -105,7 +110,21 @@ public class StringBoundary extends AbstractBoundary<String> {
 
   @Override
   public int compareTo(Boundary o) {
-    return o.getText().compareTo(o.getText());
+    if (!(o instanceof StringBoundary)) {
+      return 0;
+    }
+    StringBoundary otherStringB = (StringBoundary) o;
+    if (matchesAny() || matchesNoneOfValues()) {
+      if (otherStringB.matchesAny() || otherStringB.matchesNoneOfValues()) {
+        return 0;
+      } else {
+        return -1;
+      }
+    }
+    if (otherStringB.matchesAny() || otherStringB.matchesNoneOfValues()) {
+      return 1;
+    }
+    return this.getValues()[0].compareTo(otherStringB.getValues()[0]);
   }
 
   /**
@@ -178,6 +197,7 @@ public class StringBoundary extends AbstractBoundary<String> {
   }
 
   private void calcHashes() {
+    Arrays.sort(values);
     valuesHashes = new int[values.length];
     for (int i = 0; i < values.length; i++) {
       values[i] = values[i].replace('"', '\0').trim();