diff --git a/src/p_tick.c b/src/p_tick.c
index 60a776cbc508c619f023faea966e57c62758af54..237d6b593c5c46640a0cd309a3eb847c76ecf002 100644
--- a/src/p_tick.c
+++ b/src/p_tick.c
@@ -476,11 +476,14 @@ static inline void P_DoSpecialStageStuff(void)
 		// Count up the rings of all the players and see if
 		// they've collected the required amount.
 		for (i = 0; i < MAXPLAYERS; i++)
-			if (playeringame[i] && players[i].nightstime)
+			if (playeringame[i])
 			{
 				tic_t oldnightstime = players[i].nightstime;
 				countspheres += players[i].spheres;
 
+				if (!oldnightstime)
+					continue;
+
 				// If in water, deplete timer 6x as fast.
 				if (players[i].mo->eflags & (MFE_TOUCHWATER|MFE_UNDERWATER) && !(players[i].powers[pw_shield] & SH_PROTECTWATER))
 					players[i].nightstime -= 5;