diff --git a/src/y_inter.c b/src/y_inter.c
index 6833ca2b5aeb1e62d45d4561ea38d0ccc8d52832..dca8cd3777b16d4fa0cdf555bdea3c3cd577b45c 100644
--- a/src/y_inter.c
+++ b/src/y_inter.c
@@ -266,6 +266,14 @@ void Y_LoadIntermissionData(void)
 		case int_ctf:
 		case int_teammatch:
 		{
+			if (!rflagico) //prevent a crash if we haven't cached our team graphics yet
+			{
+				rflagico = W_CachePatchName("RFLAGICO", PU_HUDGFX);
+				bflagico = W_CachePatchName("BFLAGICO", PU_HUDGFX);
+				rmatcico = W_CachePatchName("RMATCICO", PU_HUDGFX);
+				bmatcico = W_CachePatchName("BMATCICO", PU_HUDGFX);
+			}
+
 			data.match.redflag = (intertype == int_ctf) ? rflagico : rmatcico;
 			data.match.blueflag = (intertype == int_ctf) ? bflagico : bmatcico;
 		}