diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index f61c80cb2c7a6ef557e9cd6b57e395e5b5797f98..8f6c45b3ee0a582ef560838e74404791a6aa6f30 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -4102,7 +4102,8 @@ static void Skin_OnChange(void)
 	if (!Playing())
 		return; // do whatever you want
 
-	if (!(cv_debug || devparm) && !(multiplayer || netgame)) // In single player.
+	if (!(cv_debug || devparm) && !(multiplayer || netgame) // In single player.
+		&& (gamestate != GS_WAITINGPLAYERS)) // allows command line -warp x +skin y
 	{
 		CV_StealthSet(&cv_skin, skins[players[consoleplayer].skin].name);
 		return;
@@ -4145,8 +4146,7 @@ static void Color_OnChange(void)
 	if (!Playing())
 		return; // do whatever you want
 
-	if (!(cv_debug || devparm) && !(multiplayer || netgame) // In single player.
-		&& (gamestate == GS_LEVEL || gamestate == GS_INTERMISSION || gamestate == GS_CONTINUING))
+	if (!(cv_debug || devparm) && !(multiplayer || netgame)) // In single player.
 	{
 		CV_StealthSet(&cv_skin, skins[players[consoleplayer].skin].name);
 		return;