diff --git a/builtin/mainmenu/init.lua b/builtin/mainmenu/init.lua
index 6ad2aa88a93ffe8bb5c6338515e15a09b80b706e..e5820833619e576d685079e1c9ee9bf900ac9600 100644
--- a/builtin/mainmenu/init.lua
+++ b/builtin/mainmenu/init.lua
@@ -97,7 +97,7 @@ local function init_globals()
 
 		local found_singleplayerworld = false
 
-		for world in pairs(world_list) do
+		for i,world in pairs(world_list) do
 			if world.name == "singleplayerworld" then
 				found_singleplayerworld = true
 				gamedata.worldindex = i
@@ -110,10 +110,10 @@ local function init_globals()
 
 			local world_list = core.get_worlds()
 
-			for world in pairs(world_list) do
+			for i,world in pairs(world_list) do
 				if world.name == "singleplayerworld" then
 					gamedata.worldindex = i
-					return
+					break
 				end
 			end
 		end
diff --git a/src/main.cpp b/src/main.cpp
index 8ba24f307d6e6fdd89b8855cc205485adbe1cc5e..23ce01073bd745a925a8c34c1c74d47f5863dfe4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1071,6 +1071,8 @@ static bool create_userdata_path()
 	porting::setExternalStorageDir(porting::jnienv);
 	if (!fs::PathExists(porting::path_user)) {
 		success = fs::CreateDir(porting::path_user);
+	} else {
+		success = true;
 	}
 	porting::copyAssets();
 #else