diff --git a/src/g_game.c b/src/g_game.c
index 08c6be101ef7053ce0474c75f71b04d113d1593e..84db90132b0b1dafebaf77b8f48411eaec2b0534 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -5529,7 +5529,6 @@ void G_StopDemo(void)
 boolean G_CheckDemoStatus(void)
 {
 	boolean saved;
-	char fulldemoname[128]; //Demo name with srb2home path
 
 	if(ghosts) // ... ... ...
 		ghosts = NULL; // :)
@@ -5580,9 +5579,7 @@ boolean G_CheckDemoStatus(void)
 		WRITEUINT8(demo_p, DEMOMARKER); // add the demo end marker
 		md5_buffer((char *)p+16, demo_p - (p+16), p); // make a checksum of everything after the checksum in the file.
 #endif
-
-		sprintf(fulldemoname, "%s"PATHSEP"%s", srb2home, demoname);
-		saved = FIL_WriteFile(fulldemoname, demobuffer, demo_p - demobuffer); // finally output the file.
+		saved = FIL_WriteFile(va(pandf, srb2home, demoname), demobuffer, demo_p - demobuffer); // finally output the file.
 		free(demobuffer);
 		demorecording = false;