diff --git a/btypes_big_integer/src/main/java/de/hhu/stups/btypes/BRelation.java b/btypes_big_integer/src/main/java/de/hhu/stups/btypes/BRelation.java
index 1d3816877bc9afdad4e77e5f057a86db81af425e..a44527396ac8b96606c1a4de204027da1a0ccad7 100644
--- a/btypes_big_integer/src/main/java/de/hhu/stups/btypes/BRelation.java
+++ b/btypes_big_integer/src/main/java/de/hhu/stups/btypes/BRelation.java
@@ -219,14 +219,12 @@ public class BRelation<S,T> implements BObject, Iterable<BTuple<S,T>> {
 		S prj1 = object.projection1();
 		T prj2 = object.projection2();
 
-		PersistentHashSet domain = (PersistentHashSet) SET.invoke(KEYS.invoke(this.map));
+		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
 
-		if(!domain.contains(prj1)) {
+		if(range == null) {
 			return new BBoolean(false);
 		}
 
-		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
-
 		return new BBoolean(range.contains(prj2));
 	}
 
@@ -234,14 +232,12 @@ public class BRelation<S,T> implements BObject, Iterable<BTuple<S,T>> {
 		S prj1 = object.projection1();
 		T prj2 = object.projection2();
 
-		PersistentHashSet domain = (PersistentHashSet) SET.invoke(KEYS.invoke(this.map));
+		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
 
-		if(!domain.contains(prj1)) {
+		if(range == null) {
 			return new BBoolean(true);
 		}
 
-		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
-
 		return new BBoolean(!range.contains(prj2));
 	}
 
diff --git a/btypes_primitives/src/main/java/de/hhu/stups/btypes/BRelation.java b/btypes_primitives/src/main/java/de/hhu/stups/btypes/BRelation.java
index 0631fb3e08e288739c8ccfdff6456d8e93143042..533652d3b29f2f4d98dabff19d24ee67b49786bf 100644
--- a/btypes_primitives/src/main/java/de/hhu/stups/btypes/BRelation.java
+++ b/btypes_primitives/src/main/java/de/hhu/stups/btypes/BRelation.java
@@ -218,14 +218,12 @@ public class BRelation<S,T> implements BObject, Iterable<BTuple<S,T>> {
 		S prj1 = object.projection1();
 		T prj2 = object.projection2();
 
-		PersistentHashSet domain = (PersistentHashSet) SET.invoke(KEYS.invoke(this.map));
+		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
 
-		if(!domain.contains(prj1)) {
+		if(range == null) {
 			return new BBoolean(false);
 		}
 
-		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
-
 		return new BBoolean(range.contains(prj2));
 	}
 
@@ -233,14 +231,12 @@ public class BRelation<S,T> implements BObject, Iterable<BTuple<S,T>> {
 		S prj1 = object.projection1();
 		T prj2 = object.projection2();
 
-		PersistentHashSet domain = (PersistentHashSet) SET.invoke(KEYS.invoke(this.map));
+		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
 
-		if(!domain.contains(prj1)) {
+		if(range == null) {
 			return new BBoolean(true);
 		}
 
-		PersistentHashSet range = (PersistentHashSet) GET.invoke(this.map, prj1);
-
 		return new BBoolean(!range.contains(prj2));
 	}