Index: darkplaces/snd_main.c
diff -u darkplaces/snd_main.c:1.55 darkplaces/snd_main.c:1.56
--- darkplaces/snd_main.c:1.55	Mon Dec 18 13:11:08 2006
+++ darkplaces/snd_main.c	Sat Jan 20 04:14:02 2007
@@ -949,6 +949,11 @@
 		return NULL;
 
 	sfx = S_FindName (name);
+
+	// clear the FILEMISSING flag so that S_LoadSound will try again on a
+	// previously missing file
+	sfx->flags &= ~ SFXFLAG_FILEMISSING;
+
 	if (sfx == NULL)
 		return NULL;
 
Index: darkplaces/snd_mem.c
diff -u darkplaces/snd_mem.c:1.50 darkplaces/snd_mem.c:1.51
--- darkplaces/snd_mem.c:1.50	Sat Aug  5 08:31:03 2006
+++ darkplaces/snd_mem.c	Sat Jan 20 04:14:02 2007
@@ -80,7 +80,7 @@
 {
 	size_t newsampleframes, memsize;
 	snd_buffer_t* sb;
-	
+
 	newsampleframes = (double)sampleframes * (double)sb_speed / (double)in_format->speed;
 
 	memsize = newsampleframes * in_format->channels * in_format->width;
@@ -311,6 +311,7 @@
 		return true;
 
 	// If we weren't able to load it previously, no need to retry
+	// Note: S_PrecacheSound clears this flag to cause a retry
 	if (sfx->flags & SFXFLAG_FILEMISSING)
 		return false;
 