diff --git a/src/p_enemy.c b/src/p_enemy.c
index 1c6625bd9878416a638fce348f0408dbddfdb8e8..00f3c52c698b90f3e728bd88ab7d148e267deed4 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -5175,9 +5175,13 @@ void A_SignPlayer(mobj_t *actor)
 					if (!skincheck(skincount))
 						skincount++;
 				skinnum = P_RandomKey(skincount);
-				for (skincount = skinnum; skincount < numskins; skincount++)
+				for (skincount = 0; skincount < numskins; skincount++)
+				{
 					if (skincheck(skincount))
 						skinnum++;
+					if (skincount > skinnum)
+						break;
+				}
 			}
 			else // otherwise, advance 1 skin
 			{