diff --git a/src/p_enemy.c b/src/p_enemy.c
index d4cf24650f19fa4e7381499abf05ab589e387077..cca4ac5609fa89b4381d826704c32cb8f491d26d 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 02450f86a3fdb5ef0c410c112d3e537b734ba6ff..27ae92353e74aa36eb4eccf25fc0fdb8c403fbbb 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;
 }