diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index 7af7aa768b83c1bdd9fea7a6157bb27e964c7954..58db7961bbff49519ba300586e2f244cee5699f9 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -1591,20 +1591,8 @@ static void HU_DrawRankings(void)
 	{
 		if (cv_timelimit.value && timelimitintics > 0)
 		{
-			INT32 timeval = (timelimitintics+1-leveltime)/TICRATE;
-
-			if (leveltime <= timelimitintics)
-			{
-				V_DrawCenteredString(64, 8, 0, "TIME LEFT");
-				V_DrawCenteredString(64, 16, 0, va("%u", timeval));
-			}
-
-			// overtime
-			if ((leveltime > (timelimitintics + TICRATE/2)) && cv_overtime.value)
-			{
-				V_DrawCenteredString(64, 8, 0, "TIME LEFT");
-				V_DrawCenteredString(64, 16, 0, "OVERTIME");
-			}
+			V_DrawCenteredString(64, 8, 0, "TIME");
+			V_DrawCenteredString(64, 16, 0, va("%i:%02i", G_TicsToMinutes(stplyr->realtime, true), G_TicsToSeconds(stplyr->realtime)));
 		}
 
 		if (cv_pointlimit.value > 0)
diff --git a/src/m_menu.c b/src/m_menu.c
index 24beff317e41f246ba36b0974f306bdd99b08ec5..e53d9012f54fec9136d95dbf165bb9957fd112e4 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -5682,7 +5682,7 @@ static void M_DrawChecklist(void)
 												beat = va("Get %d points in %s", cond[condnum].requirement, level);
 												break;
 											case UC_MAPTIME:
-												beat = va("Beat %s in %d:%d.%d", level,
+												beat = va("Beat %s in %d:%02d.%02d", level,
 												G_TicsToMinutes(cond[condnum].requirement, true),
 												G_TicsToSeconds(cond[condnum].requirement),
 												G_TicsToCentiseconds(cond[condnum].requirement));
@@ -5707,7 +5707,7 @@ static void M_DrawChecklist(void)
 											beat = va("Get %d points over all maps", cond[condnum].requirement);
 											break;
 										case UC_OVERALLTIME:
-											beat = va("Get a total time of less than %d:%d.%d",
+											beat = va("Get a total time of less than %d:%02d.%02d",
 											G_TicsToMinutes(cond[condnum].requirement, true),
 											G_TicsToSeconds(cond[condnum].requirement),
 											G_TicsToCentiseconds(cond[condnum].requirement));
@@ -5755,12 +5755,12 @@ static void M_DrawChecklist(void)
 												break;
 											case UC_NIGHTSTIME:
 												if (cond[condnum].extrainfo2)
-													beat = va("Beat %s, mare %d in %d:%d.%d", level, cond[condnum].extrainfo2,
+													beat = va("Beat %s, mare %d in %d:%02d.%02d", level, cond[condnum].extrainfo2,
 													G_TicsToMinutes(cond[condnum].requirement, true),
 													G_TicsToSeconds(cond[condnum].requirement),
 													G_TicsToCentiseconds(cond[condnum].requirement));
 												else
-													beat = va("Beat %s in %d:%d.%d",
+													beat = va("Beat %s in %d:%02d.%02d",
 													level,
 													G_TicsToMinutes(cond[condnum].requirement, true),
 													G_TicsToSeconds(cond[condnum].requirement),
diff --git a/src/p_user.c b/src/p_user.c
index f422e9b650994aba6311691d1aa1d5ed9a8acfa9..d127e7139a449e243c3409d42343ab9d7ac4b98b 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -1725,7 +1725,7 @@ void P_DoPlayerExit(player_t *player)
 	else if (gametype == GT_RACE || gametype == GT_COMPETITION) // If in Race Mode, allow
 	{
 		if (!countdown) // a 60-second wait ala Sonic 2.
-			countdown = cv_countdowntime.value*TICRATE + 1; // Use cv_countdowntime
+			countdown = (cv_countdowntime.value - 1)*TICRATE + 1; // Use cv_countdowntime
 
 		player->exiting = 3*TICRATE;
 
@@ -9538,7 +9538,7 @@ void P_PlayerThink(player_t *player)
 		if (i == MAXPLAYERS && player->exiting == 3*TICRATE) // finished
 			player->exiting = (14*TICRATE)/5 + 1;
 
-		// If 10 seconds are left on the timer,
+		// If 11 seconds are left on the timer,
 		// begin the drown music for countdown!
 		if (countdown == 11*TICRATE - 1)
 		{
diff --git a/src/screen.c b/src/screen.c
index 28765785bda30f2071c14e7176f022371a20ddad..5120aa5817272339748d083811d4b7924bbe4b31 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -455,9 +455,8 @@ void SCR_ClosedCaptions(void)
 		if (music && !gamestopped && (closedcaptions[i].t < flashingtics) && (closedcaptions[i].t & 1))
 			continue;
 
-		flags = V_NOSCALESTART|V_ALLOWLOWERCASE;
-		y = vid.height-((i + 2)*10*vid.dupy);
-		dot = ' ';
+		flags = V_SNAPTORIGHT|V_SNAPTOBOTTOM|V_ALLOWLOWERCASE;
+		y = BASEVIDHEIGHT-((i + 2)*10);
 
 		if (closedcaptions[i].b)
 			y -= (closedcaptions[i].b--)*vid.dupy;
@@ -469,8 +468,10 @@ void SCR_ClosedCaptions(void)
 			dot = '\x19';
 		else if (closedcaptions[i].c && closedcaptions[i].c->origin)
 			dot = '\x1E';
+		else
+			dot = ' ';
 
-		V_DrawRightAlignedString(vid.width-(20*vid.dupx), y,
-		flags, va("%c [%s]", dot, (closedcaptions[i].s->caption[0] ? closedcaptions[i].s->caption : closedcaptions[i].s->name)));
+		V_DrawRightAlignedString(BASEVIDWIDTH - 20, y, flags,
+			va("%c [%s]", dot, (closedcaptions[i].s->caption[0] ? closedcaptions[i].s->caption : closedcaptions[i].s->name)));
 	}
 }
diff --git a/src/st_stuff.c b/src/st_stuff.c
index 168c9872401688cbd91dba16ea73fdf9a2c48755..b9005ab6840054c118c9c6b34cde4a1e786844d5 100644
--- a/src/st_stuff.c
+++ b/src/st_stuff.c
@@ -151,8 +151,6 @@ hudinfo_t hudinfo[NUMHUDITEMS] =
 	{ 152, 168, 0}, // HUD_HUNTPICS
 
 	{ 152,  24, V_SNAPTORIGHT}, // HUD_GRAVBOOTSICO
-
-	{ 240, 160, V_SNAPTOBOTTOM|V_SNAPTORIGHT}, // HUD_LAP
 };
 
 //
@@ -541,15 +539,46 @@ static void ST_drawScore(void)
 			ST_DrawNumFromHud(HUD_SCORENUM, op_displayflags, V_HUDTRANS);
 	}
 	else
-		ST_DrawNumFromHud(HUD_SCORENUM, stplyr->score,V_HUDTRANS);
+		ST_DrawNumFromHud(HUD_SCORENUM, stplyr->score, V_HUDTRANS);
+}
+
+static void ST_drawRaceNum(INT32 time)
+{
+	INT32 height, bounce;
+	patch_t *racenum;
+
+	time += TICRATE;
+	height = ((3*BASEVIDHEIGHT)>>2) - 8;
+	bounce = TICRATE - (1 + (time % TICRATE));
+
+	switch (time/TICRATE)
+	{
+		case 3:
+			racenum = race3;
+			break;
+		case 2:
+			racenum = race2;
+			break;
+		case 1:
+			racenum = race1;
+			break;
+		default:
+			racenum = racego;
+			break;
+	}
+	if (bounce < 3)
+	{
+		height -= (2 - bounce);
+		if (!(P_AutoPause() || paused) && !bounce)
+				S_StartSound(0, ((racenum == racego) ? sfx_s3kad : sfx_s3ka7));
+	}
+	V_DrawScaledPatch(((BASEVIDWIDTH - SHORT(racenum->width))/2), height, V_PERPLAYER, racenum);
 }
 
 static void ST_drawTime(void)
 {
 	INT32 seconds, minutes, tictrn, tics;
-
-	// TIME:
-	ST_DrawPatchFromHud(HUD_TIME, ((mapheaderinfo[gamemap-1]->countdown && countdowntimer < 11*TICRATE && leveltime/5 & 1) ? sboredtime : sbotime), V_HUDTRANS);
+	boolean downwards = false;
 
 	if (objectplacing)
 	{
@@ -560,12 +589,61 @@ static void ST_drawTime(void)
 	}
 	else
 	{
-		tics = (mapheaderinfo[gamemap-1]->countdown ? countdowntimer : stplyr->realtime);
-		seconds = G_TicsToSeconds(tics);
+		// Counting down the hidetime?
+		if ((gametype == GT_TAG || gametype == GT_HIDEANDSEEK) && (leveltime <= (hidetime*TICRATE)))
+		{
+			tics = (hidetime*TICRATE - leveltime);
+			if (tics < 3*TICRATE)
+				ST_drawRaceNum(tics);
+			downwards = true;
+		}
+		else
+		{
+			// Hidetime finish!
+			if ((gametype == GT_TAG || gametype == GT_HIDEANDSEEK) && (leveltime < ((hidetime+1)*TICRATE)))
+				ST_drawRaceNum(hidetime*TICRATE - leveltime);
+
+			// Time limit?
+			if (gametype != GT_RACE && gametype != GT_COMPETITION && gametype != GT_COOP && cv_timelimit.value && timelimitintics > 0)
+			{
+				if (timelimitintics >= leveltime)
+				{
+					tics = (timelimitintics - leveltime);
+					if (tics < 3*TICRATE)
+						ST_drawRaceNum(tics);
+				}
+				else // Overtime!
+					tics = 0;
+				downwards = true;
+			}
+			// Post-hidetime normal.
+			else if (gametype == GT_TAG || gametype == GT_HIDEANDSEEK)
+				tics = stplyr->realtime - hidetime*TICRATE;
+			// "Shadow! What are you doing? Hurry and get back here
+			// right now before the island blows up with you on it!"
+			// "Blows up??" *awkward silence* "I've got to get outta
+			// here and find Amy and Tails right away!"
+			else if (mapheaderinfo[gamemap-1]->countdown)
+			{
+				tics = countdowntimer;
+				downwards = true;
+			}
+			// Normal.
+			else
+				tics = stplyr->realtime;
+		}
+
 		minutes = G_TicsToMinutes(tics, true);
+		seconds = G_TicsToSeconds(tics);
 		tictrn  = G_TicsToCentiseconds(tics);
 	}
 
+	// TIME:
+	ST_DrawPatchFromHud(HUD_TIME, ((downwards && (tics < 30*TICRATE) && (leveltime/5 & 1)) ? sboredtime : sbotime), V_HUDTRANS);
+
+	if (!tics && downwards && (leveltime/5 & 1)) // overtime!
+		return;
+
 	if (cv_timetic.value == 1) // Tics only -- how simple is this?
 		ST_DrawNumFromHud(HUD_SECONDS, tics, V_HUDTRANS);
 	else
@@ -709,7 +787,7 @@ static void ST_drawLivesArea(void)
 	// Spectator
 	else if (stplyr->spectator)
 	{
-		V_DrawRightAlignedThinString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, "SPECTATE");
+		//V_DrawRightAlignedThinString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, "SPECTATOR");
 		v_colmap = V_GRAYMAP;
 	}
 	// Tag
@@ -747,10 +825,19 @@ static void ST_drawLivesArea(void)
 		else
 			v_colmap = V_GRAYMAP;
 	}
-	else
+	else if (circuitmap)
 	{
-		V_DrawRightAlignedThinString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, "PLAYING");
+		if (stplyr->exiting)
+			V_DrawRightAlignedThinString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, "FINISHED");
+			//V_DrawString(hudinfo[HUD_LAP].x, hudinfo[HUD_LAP].y, hudinfo[HUD_LAP].f|V_YELLOWMAP, "FINISHED!");
+		else
+		{
+			V_DrawRightAlignedString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, va("%u/%d", stplyr->laps+1, cv_numlaps.value));
+			//V_DrawString(hudinfo[HUD_LAP].x, hudinfo[HUD_LAP].y, hudinfo[HUD_LAP].f, va("Lap: %u/%d", stplyr->laps+1, cv_numlaps.value));
+		}
 	}
+	/*else
+		V_DrawRightAlignedThinString(hudinfo[HUD_LIVES].x+58, hudinfo[HUD_LIVES].y+8, V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER, "PLAYING");*/
 
 	// name
 	v_colmap |= (V_HUDTRANS|hudinfo[HUD_LIVES].f|V_PERPLAYER);
@@ -1647,92 +1734,34 @@ static void ST_drawMatchHUD(void)
 
 static inline void ST_drawRaceHUD(void)
 {
-	if (leveltime >= TICRATE && leveltime < 5*TICRATE)
-	{
-		INT32 height = ((3*BASEVIDHEIGHT)>>2) - 8;
-		INT32 bounce = (leveltime % TICRATE);
-		patch_t *racenum;
-		switch (leveltime/TICRATE)
-		{
-			case 1:
-				racenum = race3;
-				break;
-			case 2:
-				racenum = race2;
-				break;
-			case 3:
-				racenum = race1;
-				break;
-			default:
-				racenum = racego;
-				break;
-		}
-		if (bounce < 3)
-		{
-			height -= (2 - bounce);
-			if (!(P_AutoPause() || paused) && !bounce)
-					S_StartSound(0, ((racenum == racego) ? sfx_s3kad : sfx_s3ka7));
-		}
-		V_DrawScaledPatch(((BASEVIDWIDTH - SHORT(racenum->width))/2), height, V_PERPLAYER, racenum);
-	}
-
-	if (circuitmap)
-	{
-		if (stplyr->exiting)
-			V_DrawString(hudinfo[HUD_LAP].x, hudinfo[HUD_LAP].y, hudinfo[HUD_LAP].f|V_YELLOWMAP, "FINISHED!");
-		else
-			V_DrawString(hudinfo[HUD_LAP].x, hudinfo[HUD_LAP].y, hudinfo[HUD_LAP].f, va("Lap: %u/%d", stplyr->laps+1, cv_numlaps.value));
-	}
+	if (leveltime > TICRATE && leveltime <= 5*TICRATE)
+		ST_drawRaceNum(4*TICRATE - leveltime);
 }
 
 static void ST_drawTagHUD(void)
 {
-	char pstime[33] = "";
 	char pstext[33] = "";
 
 	// Figure out what we're going to print.
 	if (leveltime < hidetime * TICRATE) //during the hide time, the seeker and hiders have different messages on their HUD.
 	{
-		if (hidetime)
-			sprintf(pstime, "%d", (hidetime - leveltime/TICRATE)); //hide time is in seconds, not tics.
-
-		if (stplyr->pflags & PF_TAGIT && !stplyr->spectator)
-			sprintf(pstext, "%s", M_GetText("WAITING FOR PLAYERS TO HIDE..."));
-		else
-		{
-			if (!stplyr->spectator) //spectators get a generic HUD message rather than a gametype specific one.
-			{
-				if (gametype == GT_HIDEANDSEEK) //hide and seek.
-					sprintf(pstext, "%s", M_GetText("HIDE BEFORE TIME RUNS OUT!"));
-				else //default
-					sprintf(pstext, "%s", M_GetText("FLEE BEFORE YOU ARE HUNTED!"));
-			}
-			else
-				sprintf(pstext, "%s", M_GetText("HIDE TIME REMAINING:"));
-		}
-	}
-	else
-	{
-		if (cv_timelimit.value && timelimitintics >= leveltime)
-			sprintf(pstime, "%d", (timelimitintics-leveltime)/TICRATE);
-
 		if (stplyr->pflags & PF_TAGIT)
-			sprintf(pstext, "%s", M_GetText("YOU'RE IT!"));
-		else
+			sprintf(pstext, "%s", M_GetText("Waiting for players to hide..."));
+		else if (gametype == GT_HIDEANDSEEK) //hide and seek.
+			sprintf(pstext, "%s", M_GetText("Hide before time runs out!"));
+		else //default
+			sprintf(pstext, "%s", M_GetText("Flee before you are hunted!"));
+	}
+	else if (gametype == GT_HIDEANDSEEK && !(stplyr->pflags & PF_TAGIT))
 		{
-			if (cv_timelimit.value)
-				sprintf(pstext, "%s", M_GetText("TIME REMAINING:"));
-			else //Since having no hud message in tag is not characteristic:
-				sprintf(pstext, "%s", M_GetText("NO TIME LIMIT"));
+			sprintf(pstext, "%s", M_GetText("You cannot move while hiding."));
+			if (!splitscreen)
+				V_DrawCenteredString(BASEVIDWIDTH/2, 132, 0, M_GetText("Press F12 to watch another player."));
 		}
-	}
 
 	// Print the stuff.
 	if (pstext[0])
-		V_DrawCenteredString(BASEVIDWIDTH/2, 168, V_PERPLAYER|V_SNAPTOBOTTOM, pstext);
-
-	if (pstime[0])
-		V_DrawCenteredString(BASEVIDWIDTH/2, 184, V_PERPLAYER|V_SNAPTOBOTTOM, pstime);
+		V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER, pstext);
 }
 
 static void ST_drawCTFHUD(void)
@@ -2010,8 +2039,24 @@ static void ST_overlayDrawer(void)
 	if (!hu_showscores) // hide the following if TAB is held
 	{
 		// Countdown timer for Race Mode
-		if (countdown)
-			V_DrawCenteredString(BASEVIDWIDTH/2, 176, V_PERPLAYER, va("%d", countdown/TICRATE));
+		if (countdown > 1)
+		{
+			tic_t time = countdown/TICRATE + 1;
+			if (time < 4)
+				ST_drawRaceNum(countdown);
+			else
+			{
+				tic_t num = time;
+				INT32 sz = SHORT(tallnum[0]->width)/2, width = 0;
+				do
+				{
+					width += sz;
+					num /= 10;
+				} while (num);
+				V_DrawTallNum((BASEVIDWIDTH/2) + width, ((3*BASEVIDHEIGHT)>>2) - 7, V_PERPLAYER, time);
+				//V_DrawCenteredString(BASEVIDWIDTH/2, 176, V_PERPLAYER, va("%d", countdown/TICRATE + 1));
+			}
+		}
 
 		// If you are in overtime, put a big honkin' flashin' message on the screen.
 		if (G_RingSlingerGametype() && cv_overtime.value
@@ -2032,7 +2077,7 @@ static void ST_overlayDrawer(void)
 		if (gametype == GT_RACE || gametype == GT_COMPETITION)
 			ST_drawRaceHUD();
 		// Tag HUD Stuff
-		else if (gametype == GT_TAG || gametype == GT_HIDEANDSEEK)
+		else if ((gametype == GT_TAG || gametype == GT_HIDEANDSEEK) && (!stplyr->spectator))
 			ST_drawTagHUD();
 		// CTF HUD Stuff
 		else if (gametype == GT_CTF)
@@ -2118,20 +2163,13 @@ static void ST_overlayDrawer(void)
 		}
 		else if (!splitscreen && gametype != GT_COOP && (stplyr->exiting || (G_GametypeUsesLives() && stplyr->lives <= 0 && countdown != 1)))
 			V_DrawCenteredString(BASEVIDWIDTH/2, 132, 0, M_GetText("Press F12 to watch another player."));
-		else if (gametype == GT_HIDEANDSEEK &&
-		 (!stplyr->spectator && !(stplyr->pflags & PF_TAGIT)) && (leveltime > hidetime * TICRATE))
-		{
-			V_DrawCenteredString(BASEVIDWIDTH/2, 116, V_PERPLAYER, M_GetText("You cannot move while hiding."));
-			if (!splitscreen)
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, 0, M_GetText("Press F12 to watch another player."));
-		}
 		else if (!G_PlatformGametype() && stplyr->playerstate == PST_DEAD && stplyr->lives) //Death overrides spectator text.
 		{
 			INT32 respawntime = cv_respawntime.value - stplyr->deadtimer/TICRATE;
 			if (respawntime > 0 && !stplyr->spectator)
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, va(M_GetText("Respawn in: %d second%s."), respawntime, respawntime == 1 ? "" : "s"));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, va(M_GetText("Respawn in %d..."), respawntime));
 			else
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Jump to respawn."));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Jump to respawn."));
 		}
 		else if (stplyr->spectator && (gametype != GT_COOP || stplyr->playerstate == PST_LIVE)
 #ifdef HAVE_BLUA
@@ -2141,9 +2179,9 @@ static void ST_overlayDrawer(void)
 		{
 			V_DrawCenteredString(BASEVIDWIDTH/2, 60, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("You are a spectator."));
 			if (G_GametypeHasTeams())
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Fire to be assigned to a team."));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Fire to be assigned to a team."));
 			else if (G_IsSpecialStage(gamemap) && useNightsSS)
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("You cannot play until the stage has ended."));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("You cannot play until the stage has ended."));
 			else if (gametype == GT_COOP && stplyr->lives <= 0)
 			{
 				if (cv_cooplives.value == 2
@@ -2163,13 +2201,13 @@ static void ST_overlayDrawer(void)
 					}
 
 					if (i != MAXPLAYERS)
-						V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("You'll steal a life on respawn."));
+						V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("You'll steal a life on respawn."));
 				}
 			}
 			else if (gametype != GT_COOP)
-				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Fire to enter the game."));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Fire to enter the game."));
 			if (!splitscreen)
-				V_DrawCenteredString(BASEVIDWIDTH/2, 164, V_HUDTRANSHALF, M_GetText("Press F12 to watch another player."));
+				V_DrawCenteredString(BASEVIDWIDTH/2, 132, V_HUDTRANSHALF, M_GetText("Press F12 to watch another player."));
 			V_DrawCenteredString(BASEVIDWIDTH/2, 148, V_PERPLAYER|V_HUDTRANSHALF, M_GetText("Press Jump to float and Spin to sink."));
 		}
 	}
diff --git a/src/st_stuff.h b/src/st_stuff.h
index 50937907fe09aa5d34e6e4565957771624c23e73..df1ac6433e15b8860b07322d3a8d4792b3c476e6 100644
--- a/src/st_stuff.h
+++ b/src/st_stuff.h
@@ -102,7 +102,6 @@ typedef enum
 	HUD_TIMEUP,
 	HUD_HUNTPICS,
 	HUD_GRAVBOOTSICO,
-	HUD_LAP,
 
 	NUMHUDITEMS
 } hudnum_t;