diff --git a/src/main/java/de/tla2b/analysis/TypeChecker.java b/src/main/java/de/tla2b/analysis/TypeChecker.java
index 9336e6d1bbc15ad31108d3c919e60b419458fc79..40c187d1e11435dfe0a11f9167d06c404a822f4d 100644
--- a/src/main/java/de/tla2b/analysis/TypeChecker.java
+++ b/src/main/java/de/tla2b/analysis/TypeChecker.java
@@ -1166,8 +1166,14 @@ public class TypeChecker extends BuiltInOPs implements ASTConstants, BBuildIns,
 					throw new TypeErrorException(String.format("Expected %s, found BOOL at '%s',%n%s", expected,
 						n.getOperator().getName(), n.getLocation()));
 				}
-				for (int i = 0; i < n.getArgs().length; i++) {
-					visitExprOrOpArgNode(n.getArgs()[i], IntType.getInstance());
+				try {
+					for (int i = 0; i < n.getArgs().length; i++) {
+						visitExprOrOpArgNode(n.getArgs()[i], IntType.getInstance());
+					}
+				} catch (TypeErrorException e) {
+					for (int i = 0; i < n.getArgs().length; i++) {
+						visitExprOrOpArgNode(n.getArgs()[i], RealType.getInstance());
+					}
 				}
 				return BoolType.getInstance();
 			}
@@ -1428,6 +1434,7 @@ public class TypeChecker extends BuiltInOPs implements ASTConstants, BBuildIns,
 			case B_OPCODE_setprod: // SetProduct(S)
 			case B_OPCODE_setsum: // SetSummation(S)
 			{
+				// TODO: do we need support for Reals here?
 				try {
 					IntType.getInstance().unify(expected);
 				} catch (UnificationException e) {