diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index 405b288478e540322835e7346701410ee8e05401..60b1d14dab6c5ea9a69a817a7219559bc94c2731 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -2552,7 +2552,8 @@ void HU_drawPing(INT32 x, INT32 y, UINT32 lag, INT32 flags)
 
 	gfxnum = Ping_gfx_num(lag);
 
-	V_DrawScaledPatch(x+11 - pingmeasure[measureid]->width, y+9, flags, pingmeasure[measureid]);
+	if (measureid == 1)
+		V_DrawScaledPatch(x+11 - pingmeasure[measureid]->width, y+9, flags, pingmeasure[measureid]);
 	V_DrawScaledPatch(x+2, y, flags, pinggfx[gfxnum]);
 
 	if (servermaxping && lag > servermaxping && hu_tick < 4)
@@ -2566,7 +2567,10 @@ void HU_drawPing(INT32 x, INT32 y, UINT32 lag, INT32 flags)
 		lag = (INT32)(lag * (1000.00f / TICRATE));
 	}
 
-	V_DrawPingNum(x+11 - pingmeasure[measureid]->width, y+9, flags, lag, colormap);
+	x = V_DrawPingNum(x + (measureid == 1 ? 11 - pingmeasure[measureid]->width : 10), y+9, flags, lag, colormap);
+
+	if (measureid == 0)
+		V_DrawScaledPatch(x+1 - pingmeasure[measureid]->width, y+9, flags, pingmeasure[measureid]);
 }
 
 //
diff --git a/src/v_video.c b/src/v_video.c
index 7bbb2988b71d3e97a5e0034dff00103963c44943..09a473ed3324846632140fa47220faa68400f1d3 100644
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -2028,7 +2028,7 @@ void V_DrawPaddedTallNum(INT32 x, INT32 y, INT32 flags, INT32 num, INT32 digits)
 // Draws a number using the PING font thingy.
 // TODO: Merge number drawing functions into one with "font name" selection.
 
-void V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *colormap)
+INT32 V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *colormap)
 {
 	INT32 w = SHORT(pingnum[0]->width);	// this SHOULD always be 5 but I guess custom graphics exist.
 
@@ -2045,6 +2045,8 @@ void V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *colorm
 		V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, FRACUNIT, flags, pingnum[num%10], colormap);
 		num /= 10;
 	} while (num);
+
+	return x;
 }
 
 // Write a string using the credit font
diff --git a/src/v_video.h b/src/v_video.h
index 17028a075108ed2c807c61d689063d42bc45fd2a..46a50a572227eca4c20d1e1f272f41300c53026c 100644
--- a/src/v_video.h
+++ b/src/v_video.h
@@ -205,7 +205,7 @@ void V_DrawPaddedTallNum(INT32 x, INT32 y, INT32 flags, INT32 num, INT32 digits)
 
 // Draw ping numbers. Used by the scoreboard and that one ping option. :P
 // This is a separate function because IMO lua should have access to it as well.
-void V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *colormap);
+INT32 V_DrawPingNum(INT32 x, INT32 y, INT32 flags, INT32 num, const UINT8 *colormap);
 
 // Find string width from lt_font chars
 INT32 V_LevelNameWidth(const char *string);