diff --git a/src/client.cpp b/src/client.cpp
index c1806df9961ccfdb79dce105feb7c16c78cbfbf3..074ac9ba60c9b342b061a2a5cb4c2717be84c5d8 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -219,6 +219,7 @@ Client::Client(
 		IrrlichtDevice *device,
 		const char *playername,
 		std::string password,
+		bool is_simple_singleplayer_game,
 		MapDrawControl &control,
 		IWritableTextureSource *tsrc,
 		IWritableShaderSource *shsrc,
@@ -280,7 +281,8 @@ Client::Client(
 		m_env.addPlayer(player);
 	}
 
-	if (g_settings->getBool("enable_local_map_saving")) {
+	if (g_settings->getBool("enable_local_map_saving")
+			&& !is_simple_singleplayer_game) {
 		const std::string world_path = porting::path_user + DIR_DELIM + "worlds"
 				+ DIR_DELIM + "server_" + g_settings->get("address")
 				+ "_" + g_settings->get("remote_port");
diff --git a/src/client.h b/src/client.h
index e41410f14a25f49e8c0ff6ae1efccd2f7867c853..e871dee93d58fd5adae9f17d7cebd45fd5a4cf77 100644
--- a/src/client.h
+++ b/src/client.h
@@ -305,6 +305,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
 			IrrlichtDevice *device,
 			const char *playername,
 			std::string password,
+			bool is_simple_singleplayer_game,
 			MapDrawControl &control,
 			IWritableTextureSource *tsrc,
 			IWritableShaderSource *shsrc,
diff --git a/src/game.cpp b/src/game.cpp
index 4518c1612f3943ef8aabd0926e3c1965a9b2c9de..70d526a9d7e5726c412e41b35427a5c3ca1408de 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -2103,9 +2103,11 @@ bool Game::connectToServer(const std::string &playername,
 		return false;
 	}
 
-	client = new Client(device, playername.c_str(), password, *draw_control,
-		    texture_src, shader_src, itemdef_manager, nodedef_manager, sound,
-			eventmgr, connect_address.isIPv6());
+	client = new Client(device,
+			playername.c_str(), password, simple_singleplayer_mode,
+			*draw_control, texture_src, shader_src,
+			itemdef_manager, nodedef_manager, sound, eventmgr,
+			connect_address.isIPv6());
 
 	if (!client)
 		return false;