diff --git a/src/p_enemy.c b/src/p_enemy.c
index f21841d136111b5070a5d271ded41cdde987ccdc..f2f92bf5373f6c5d7e626703a8935a75e0b17385 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -2553,6 +2553,7 @@ void A_1upThinker(mobj_t *actor)
 	{
 		P_SetTarget(&actor->tracer, P_SpawnMobj(actor->x, actor->y, actor->z, MT_OVERLAY));
 		P_SetTarget(&actor->tracer->target, actor);
+		actor->tracer->skin = &skins[players[closestplayer].skin]; // required here to prevent spr2 default showing stand for a single frame
 		P_SetMobjState(actor->tracer, actor->info->seestate);
 
 		// The overlay is going to be one tic early turning off and on
diff --git a/src/p_mobj.c b/src/p_mobj.c
index ff805f4db34f9884fd2efc3bddd32151bfd7508c..3a6eda088073fe91ddcf91d5b7c3af91574b99dc 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -193,7 +193,6 @@ UINT8 P_GetMobjSprite2(mobj_t *mobj, UINT8 spr2)
 {
 	player_t *player = mobj->player;
 	skin_t *skin = ((skin_t *)mobj->skin);
-	boolean noalt = false;
 
 	if (!skin)
 		return 0;
@@ -386,20 +385,11 @@ UINT8 P_GetMobjSprite2(mobj_t *mobj, UINT8 spr2)
 			spr2 = SPR2_NGTC;
 			break;
 
-
-		// Sprites for non-player objects? There's nothing we can do.
-		case SPR2_SIGN:
-		case SPR2_LIFE:
-			noalt = true;
-			break;
-
 		// Dunno? Just go to standing then.
 		default:
 			spr2 = SPR2_STND;
 			break;
 		}
-		if (noalt)
-			break;
 	}
 	return spr2;
 }