diff --git a/de.prob.core/src/de/prob/cli/CliStarter.java b/de.prob.core/src/de/prob/cli/CliStarter.java
index e6566a7faeaa3ac96aa307debb986cae5a8b1964..782df75f94009d40ba40a28a48207755232994cc 100644
--- a/de.prob.core/src/de/prob/cli/CliStarter.java
+++ b/de.prob.core/src/de/prob/cli/CliStarter.java
@@ -85,6 +85,16 @@ public final class CliStarter {
 		}
 
 		List<String> command = new ArrayList<String>();
+		if (Platform.OS_MACOSX.equals(os)) {
+			// Run universal probcli as arm64 if possible (i. e. if the host processor is arm64),
+			// even if Rodin/Eclipse is running as x86_64.
+			// (The macOS default behavior is to match the architecture of the parent process,
+			// which is bad in our case,
+			// because x86_64 probcli under Rosetta 2 is much slower than native arm64 probcli.)
+			command.add("arch");
+			command.add("-arm64");
+			command.add("-x86_64");
+		}
 		command.add(executable);
 		// command.add("-ll");
 		command.add("-sf");