diff --git a/src/st_stuff.c b/src/st_stuff.c
index 7eab0442f4a99a6f379c0b691dd7b164131c164e..42f1f89ec5529d49c088e9ea0a2c081f3b49a1d6 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -2577,6 +2577,7 @@ static boolean ST_doItemFinderIconsAndSound(void)
 		if (stemblems >= 16)
 			break;
 	}
+
 	// Found all/none exist? Don't waste our time
 	if (!stunfound)
 	{
@@ -2602,6 +2603,9 @@ static boolean ST_doItemFinderIconsAndSound(void)
 		{
 			if (mo2->health == emblems[i] + 1)
 			{
+				if (P_EmblemWasCollected(emblems[i]))
+					break;
+
 				soffset = (i * 20) - ((stemblems - 1) * 10);
 
 				newinterval = ST_drawEmeraldHuntIcon(mo2, itemhoming, soffset);
@@ -2736,7 +2740,7 @@ static void ST_overlayDrawer(void)
 			ST_drawRaceHUD();
 
 		// Emerald Hunt Indicators
-		if (!ST_doItemFinderIconsAndSound());
+		if (!ST_doItemFinderIconsAndSound())
 			ST_doHuntIconsAndSound();
 
 		if(!P_IsLocalPlayer(stplyr))