diff --git a/src/m_menu.c b/src/m_menu.c
index ef149cec5b7f2a5f4bb9181fbf88f20b5750b3fa..c025ae2867929dc7098f8a9874d8da0ace9e706d 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -7156,8 +7156,8 @@ static void M_LevelSelectWarp(INT32 choice)
 		{
 			M_ClearMenus(true);
 
-			D_MapChange(startmap, gametype, false, false, 1, false, fromlevelselect);
-			COM_BufAddText("dummyconsvar 1\n");
+			G_DeferedInitNew(false, G_BuildMapName(startmap), cv_skin.value, false, fromlevelselect); // Not sure about using cv_skin here, but it seems fine in testing.
+			COM_BufAddText("dummyconsvar 1\n"); // G_DeferedInitNew doesn't do this
 
 			if (levelselect.rows)
 				Z_Free(levelselect.rows);