diff --git a/src/p_inter.c b/src/p_inter.c
index 7c36bf477916c880ebf1479a98d621371cef3527..601f2677bd27ecab5b20aad6b153abf5cf601212 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -738,12 +738,11 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 		// Secret emblem thingy
 		case MT_EMBLEM:
 			{
-				if (demoplayback || (player->bot && player->bot != BOT_MPAI))
+				if (demoplayback || (player->bot && player->bot != BOT_MPAI) || special->health > MAXEMBLEMS)
 					return;
 				emblemlocations[special->health-1].collected = true;
 
 				M_UpdateUnlockablesAndExtraEmblems();
-
 				G_SaveGameData();
 				break;
 			}