diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index b5b2e7ca6575e8772cb9f5e3c6ece23f9f0133ac..83e9437adf16e9f39ebe92e5b4cebc47689f7b7b 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -2528,10 +2528,10 @@ void I_Quit(void)
 death:
 	W_Shutdown();
 #ifdef __EMSCRIPTEN__
+	emscripten_cancel_main_loop();
 	emscripten_force_exit(0);
-#else
-	exit(0);
 #endif
+	exit(0);
 }
 
 void I_WaitVBL(INT32 count)