diff --git a/src/g_game.c b/src/g_game.c
index dcc1adff3cffb90009b5351dd48ab0622b10f627..43a270b77bfada1c460a1d3cf9ebd567b39d9d98 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -3651,7 +3651,7 @@ tryagain:
 
 void G_AddMapToBuffer(INT16 map)
 {
-	INT16 bufx, refreshnum = (TOLMaps(G_TOLFlag(gametype)) / 2) + 1;
+	INT16 bufx, refreshnum = max(0, TOLMaps(G_TOLFlag(gametype))-3);
 
 	// Add the map to the buffer.
 	for (bufx = NUMMAPS-1; bufx > 0; bufx--)