diff --git a/src/main/java/de/prob/voparser/VOTypeChecker.java b/src/main/java/de/prob/voparser/VOTypeChecker.java
index 3fa6385503434db4f86fe18689a1747e0a9b019b..a73e6ebb4ea0b2352cca2ab809a053b5fdec6e50 100644
--- a/src/main/java/de/prob/voparser/VOTypeChecker.java
+++ b/src/main/java/de/prob/voparser/VOTypeChecker.java
@@ -50,7 +50,8 @@ public class VOTypeChecker extends DepthFirstAdapter {
 		PersistentHashSet<AnimatorState> resultAnimatorState = leftAnimatorState;
 		for(AnimatorState state : leftAnimatorState) {
 			if(!rightAnimatorState.contains(state)) {
-				resultAnimatorState.remove(state);
+				// Do not use remove as PersistentHashSet is immutable
+				resultAnimatorState = resultAnimatorState.disjoin(state);
 			}
 		}
 		resultAnimatorState = resultAnimatorState.disjoin(AnimatorState.TRACE);
@@ -68,7 +69,8 @@ public class VOTypeChecker extends DepthFirstAdapter {
 		PersistentHashSet<AnimatorState> resultAnimatorState = leftAnimatorState;
 		for(AnimatorState state : leftAnimatorState) {
 			if(!rightAnimatorState.contains(state)) {
-				resultAnimatorState.remove(state);
+				// Do not use remove as PersistentHashSet is immutable
+				resultAnimatorState = resultAnimatorState.disjoin(state);
 			}
 		}
 		resultAnimatorState = resultAnimatorState.disjoin(AnimatorState.STATE_SPACE);