diff --git a/src/g_game.c b/src/g_game.c
index 96a7ed423..0c085c84e 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -3220,7 +3220,8 @@ void G_UpdateGametypeSelections(void)
 //
 void G_SetGametypeDescription(INT16 gtype, char *descriptiontext, UINT8 leftcolor, UINT8 rightcolor)
 {
-	strncpy(gametypedesc[gtype].notes, descriptiontext, 441);
+	if (descriptiontext != NULL)
+		strncpy(gametypedesc[gtype].notes, descriptiontext, 441);
 	gametypedesc[gtype].col[0] = leftcolor;
 	gametypedesc[gtype].col[1] = rightcolor;
 }
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 7ff967b40..5f9d3dbf6 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -24,6 +24,7 @@
 #include "m_random.h"
 #include "s_sound.h"
 #include "g_game.h"
+#include "m_menu.h"
 #include "y_inter.h"
 #include "hu_stuff.h"	// HU_AddChatText
 #include "console.h"
@@ -2737,7 +2738,8 @@ static int lib_gAddGametype(lua_State *L)
 	// Add the new gametype
 	newgtidx = G_AddGametype(newgtrules);
 	G_AddGametypeTOL(newgtidx, newgttol);
-	G_SetGametypeDescription(newgtidx, (char *)gtdescription, newgtleftcolor, newgtrightcolor);
+	G_SetGametypeDescription(newgtidx, NULL, newgtleftcolor, newgtrightcolor);
+	strncpy(gametypedesc[newgtidx].notes, gtdescription, 441);
 
 	// Not covered by G_AddGametype alone.
 	if (newgtrankingstype == -1)