diff --git a/src/g_game.c b/src/g_game.c
index fe1d13f2a2cef31da9374be90e3f77d967e9acaf..6a99381e741544030ad9208f93860ffbc0f249d6 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -4621,6 +4621,9 @@ void G_SaveGameData(gamedata_t *data)
 
 	INT32 curmare;
 
+	if (!data)
+		return; // data struct not valid
+
 	if (!data->loaded)
 		return; // If never loaded (-nodata), don't save