--- client/audio_sdl.c-original.c	2010-05-23 14:43:05.000000000 -0700
+++ client/audio_sdl.c	2010-07-11 01:08:33.000000000 -0700
@@ -76,60 +76,22 @@
     return FALSE;
   }
 
-  if (repeat) {
-    /* unload previous */
-    Mix_HaltMusic();
-    Mix_FreeMusic(mus);
-
-    /* load music file */
-    mus = Mix_LoadMUS(fullpath);
-    if (mus == NULL) {
-      freelog(LOG_ERROR, "Can't open file \"%s\"", fullpath);
-    }
-
-    Mix_PlayMusic(mus, -1);	/* -1 means loop forever */
-    freelog(LOG_VERBOSE, "Playing file \"%s\" on music channel", fullpath);
-    /* in case we did a my_stop() recently; add volume controls later */
-    Mix_VolumeMusic(MIX_MAX_VOLUME);
+  /* unload previous */
+  Mix_HaltMusic();
+  Mix_FreeMusic(mus);
 
-  } else {
+  /* load music file */
+  mus = Mix_LoadMUS(fullpath);
+  if (mus == NULL) {
+    freelog(LOG_ERROR, "Can't open file \"%s\"", fullpath);
+  }
 
-    /* see if we can cache on this one */
-    for (j = 0; j < MIX_CHANNELS; j++) {
-      if (samples[j].tag && (strcmp(samples[j].tag, tag) == 0)) {
-	freelog(LOG_DEBUG, "Playing file \"%s\" from cache (slot %d)", fullpath,
-		j);
-	i = Mix_PlayChannel(-1, samples[j].wave, 0);
-	return TRUE;
-      }
-    }				/* guess not */
-
-    /* load wave */
-    wave = Mix_LoadWAV(fullpath);
-    if (wave == NULL) {
-      freelog(LOG_ERROR, "Can't open file \"%s\"", fullpath);
-    }
+  Mix_PlayMusic(mus, repeat ? -1 : 1);	/* -1 means loop forever */
 
-    /* play sound sample on first available channel, returns -1 if no
-       channel found */
-    i = Mix_PlayChannel(-1, wave, 0);
-    if (i < 0) {
-      freelog(LOG_VERBOSE, "No available sound channel to play %s.", tag);
-      Mix_FreeChunk(wave);
-      return FALSE;
-    }
-    freelog(LOG_VERBOSE, "Playing file \"%s\" on channel %d", fullpath, i);
-    /* free previous sample on this channel. it will by definition no
-       longer be playing by the time we get here */
-    if (samples[i].wave) {
-      Mix_FreeChunk(samples[i].wave);
-      samples[i].wave = NULL;
-    }
-    /* remember for cacheing */
-    samples[i].wave = wave;
-    samples[i].tag = tag;
+  freelog(LOG_VERBOSE, "Playing file \"%s\" on music channel", fullpath);
+  /* in case we did a my_stop() recently; add volume controls later */
+  Mix_VolumeMusic(MIX_MAX_VOLUME);
 
-  }
   return TRUE;
 }
 
