diff --git a/src/game.cpp b/src/game.cpp
index 3f025f6de6b11d3ce2bd728e8de60a0c1d13b4b1..25424fa26c00f2afc389cf2b283fe099598a379d 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -1816,7 +1816,9 @@ void Game::run()
 			&& client->checkPrivilege("fast");
 #endif
 
-	while (device->run() && !(*kill || g_gamecallback->shutdown_requested)) {
+	while (device->run()
+			&& !(*kill || g_gamecallback->shutdown_requested
+			|| server->getShutdownRequested())) {
 
 		/* Must be called immediately after a device->run() call because it
 		 * uses device->getTimer()->getTime()