diff --git a/src/g_game.c b/src/g_game.c
index e2f43e4f26e13948b94b2cbfbf32e7b3f69e76e5..519c934a33d57e59f3118ac195dfe38eb97db43b 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -3361,6 +3361,11 @@ void G_LoadGameData(void)
 	if (M_CheckParm("-resetdata"))
 		return; // Don't load (essentially, reset).
 
+	if (M_CheckParm("-gamedata") && M_IsNextParm())
+	{
+		strlcpy(gamedatafilename, M_GetNextParm(), sizeof gamedatafilename);
+	}
+
 	length = FIL_ReadFile(va(pandf, srb2home, gamedatafilename), &savebuffer);
 	if (!length) // Aw, no game data. Their loss!
 		return;