diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index eeb19b581cecfd9aab566cb4ff1d8b847afb7f93..b5b2e7ca6575e8772cb9f5e3c6ece23f9f0133ac 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -2312,11 +2312,13 @@ void I_StartupTimer(void)
 
 void I_Sleep(UINT32 ms)
 {
-#if defined (__EMSCRIPTEN__) && 0
-	emscripten_sleep(ms);
-#else
-	SDL_Delay(ms);
+#if defined (__EMSCRIPTEN__)
+	if (emscripten_has_asyncify())
+	{
+		return emscripten_sleep(ms);
+	}
 #endif
+	SDL_Delay(ms);
 }
 
 void I_SleepDuration(precise_t duration)