diff --git a/src/st_stuff.c b/src/st_stuff.c
index 8b3ceac9d4e6f7106805338b29197d5f90d6eaa3..954ba022d1f9b069406d29eb5a3b6a1333912154 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -696,9 +696,9 @@ static void ST_drawTime(void)
 		// Counting down the hidetime?
 		if ((gametype == GT_TAG || gametype == GT_HIDEANDSEEK) && (stplyr->realtime <= (hidetime*TICRATE)))
 		{
-			tics = (hidetime*TICRATE - stplyr->realtime);
-			if (tics < 3*TICRATE)
-				ST_drawRaceNum(tics);
+			tics = (hidetime*TICRATE + (TICRATE-1) - stplyr->realtime);
+			if ((tics+1-TICRATE) < 3*TICRATE)
+				ST_drawRaceNum(tics+1-TICRATE);
 			downwards = true;
 		}
 		else
@@ -713,8 +713,8 @@ static void ST_drawTime(void)
 				if (timelimitintics >= stplyr->realtime)
 				{
 					tics = (timelimitintics + (TICRATE-1) - stplyr->realtime);
-					if (tics < 3*TICRATE)
-						ST_drawRaceNum(tics);
+					if ((tics+1-TICRATE) && (tics+1-TICRATE) < 3*TICRATE)
+						ST_drawRaceNum(tics+1-TICRATE);
 				}
 				else // Overtime!
 					tics = 0;