diff --git a/src/info.c b/src/info.c
index dd5338ef0f0fd312124608d2ac18956e728467b5..28cdb6cf29d472f74daaef8cb8a842880a7681fb 100644
--- a/src/info.c
+++ b/src/info.c
@@ -599,6 +599,7 @@ char spr2names[NUMPLAYERSPRITES][5] =
 	"LIFE",
 
 	"XTRA",
+	"NTAG",
 };
 playersprite_t free_spr2 = SPR2_FIRSTFREESLOT;
 
@@ -702,6 +703,7 @@ playersprite_t spr2defaults[NUMPLAYERSPRITES] = {
 	0, // SPR2_LIFE,
 
 	0, // SPR2_XTRA (should never be referenced)
+	0, // SPR2_NTAG
 };
 
 // Doesn't work with g++, needs actionf_p1 (don't modify this comment)
diff --git a/src/info.h b/src/info.h
index dd94677a7c8924c3ea93576eb4fa076522bfd574..46d57042f4884e684caf7db6b423df367a5a8b07 100644
--- a/src/info.h
+++ b/src/info.h
@@ -865,6 +865,7 @@ typedef enum playersprite
 	SPR2_LIFE, // life monitor icon
 
 	SPR2_XTRA, // stuff that isn't in-map - "would this ever need an md2 or variable length animation?"
+	SPR2_NTAG, // Character name tag
 
 	SPR2_FIRSTFREESLOT,
 	SPR2_LASTFREESLOT = 0x7f,
diff --git a/src/m_menu.c b/src/m_menu.c
index 2a028834de90e69e93dec429db3cb5da189f94f8..f39b0f4495ddfbce6e1ba89c4956f8f652eab023 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -7938,10 +7938,10 @@ static void M_SetupChoosePlayer(INT32 choice)
 
 				if (!(description[i].nametag[0]) && (!botskin))
 				{
-					if (skins[skinnum].sprites[SPR2_XTRA].numframes >= XTRA_NAMETAG+1)
+					if (skins[skinnum].sprites[SPR2_NTAG].numframes >= 1)
 					{
-						spritedef_t *sprdef = &skins[skinnum].sprites[SPR2_XTRA];
-						spriteframe_t *sprframe = &sprdef->spriteframes[XTRA_NAMETAG];
+						spritedef_t *sprdef = &skins[skinnum].sprites[SPR2_NTAG];
+						spriteframe_t *sprframe = &sprdef->spriteframes[0];
 						description[i].namepic = W_CachePatchNum(sprframe->lumppat[0], PU_CACHE);
 					}
 					else