diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
index 150bf62ead17e2c5613a7533a832c62a809998ee..a537cd73ee481a295ed723701b8b58bb3f1d8ada 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombine.java
@@ -35,11 +35,9 @@ public class BiCreaterStringCombine extends AbstractBoundaryBiCreater<StringBoun
     Set<String> values = new HashSet<>();
     if (b1.matchesNoneOfValues() && b2.matchesNoneOfValues()) {
       values = intersection(b1.getValues(), b2.getValues());
-    }
-    if (b1.matchesNoneOfValues()) {
+    } else if (b1.matchesNoneOfValues()) {
       values = leftInter(b1.getValues(), b2.getValues());
-    }
-    if (b2.matchesNoneOfValues()) {
+    } else if (b2.matchesNoneOfValues()) {
       values = leftInter(b2.getValues(), b1.getValues());
     }
     return Optional.of(
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 232c476c6997ebe35e4318ec315c21573a9beaa9..12d091ebd65780538dc64ab8f52ae43204f45eb3 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
@@ -192,10 +192,6 @@ public class StringBoundary extends AbstractBoundary<String> {
 
     public Builder isMatchAny(boolean matchAny) {
       value.matchAny = matchAny;
-      if (matchAny) {
-        value.matchNoneOfValues = false;
-        value.values = new String[0];
-      }
       return this;
     }
 
@@ -224,6 +220,10 @@ public class StringBoundary extends AbstractBoundary<String> {
     @Override
     public StringBoundary build() {
       value.values = buildingValues.toArray(new String[0]);
+      if (value.matchAny) {
+        value.matchNoneOfValues = false;
+        value.values = new String[0];
+      }
       value.calcHashes();
       value.text = value.getParsedText();
       return super.build();
diff --git a/dmnverifierapi/src/test/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombineTest.java b/dmnverifierapi/src/test/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombineTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..259b9f6f448a52f3ce22af1c70fc7ca159a44bff
--- /dev/null
+++ b/dmnverifierapi/src/test/java/de/unikoblenz/fgbks/base/utils/boundary/bicreater/BiCreaterStringCombineTest.java
@@ -0,0 +1,77 @@
+package de.unikoblenz.fgbks.base.utils.boundary.bicreater;
+
+import static de.unikoblenz.fgbks.base.utils.boundary.bicreater.BoundaryBiCreaterType.COMBINE;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
+import io.quarkus.test.junit.QuarkusTest;
+import org.junit.jupiter.api.Test;
+
+@QuarkusTest
+class BiCreaterStringCombineTest {
+
+  StringBoundary sb1;
+  StringBoundary sb2;
+  StringBoundary sbR;
+
+  @Test
+  void testCreater() {
+    sb1 = StringBoundary.getBuilder().addValue("a").build();
+    sb2 = StringBoundary.getBuilder().addValue("b").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{"a", "b"}, sbR.getValues());
+    assertFalse(sbR.matchesNoneOfValues());
+    assertFalse(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
+    sb2 = StringBoundary.getBuilder().addValue("b").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{"a"}, sbR.getValues());
+    assertTrue(sbR.matchesNoneOfValues());
+    assertFalse(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").addValue("b").build();
+    sb2 = StringBoundary.getBuilder().addValue("b").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{"a"}, sbR.getValues());
+    assertTrue(sbR.matchesNoneOfValues());
+    assertFalse(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().addValue("b").build();
+    sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").addValue("b").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{"a"}, sbR.getValues());
+    assertTrue(sbR.matchesNoneOfValues());
+    assertFalse(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
+    sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{}, sbR.getValues());
+    assertFalse(sbR.matchesNoneOfValues());
+    assertTrue(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("a").build();
+    sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").addValue("a").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{"a"}, sbR.getValues());
+    assertTrue(sbR.matchesNoneOfValues());
+    assertFalse(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchAny(true).build();
+    sb2 = StringBoundary.getBuilder().isMatchNoneOfValues(true).addValue("b").addValue("a").build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{}, sbR.getValues());
+    assertFalse(sbR.matchesNoneOfValues());
+    assertTrue(sbR.isMatchAny());
+
+    sb1 = StringBoundary.getBuilder().isMatchAny(true).build();
+    sb2 = StringBoundary.getBuilder().isMatchAny(true).build();
+    sbR = (StringBoundary) sb1.createBi(COMBINE, sb2).get();
+    assertArrayEquals(new String[]{}, sbR.getValues());
+    assertFalse(sbR.matchesNoneOfValues());
+    assertTrue(sbR.isMatchAny());
+  }
+}