--- audio/MPEGaudio.cpp.orig	Wed Apr  4 13:42:40 2001
+++ audio/MPEGaudio.cpp	Sat Jan 24 04:31:08 2009
@@ -54,10 +54,16 @@ MPEGaudio:: MPEGaudio(MPEGstream *stream, bool initSDL
         if ( sdl_audio ) {
             /* Open the audio, get actual audio hardware format and convert */
             bool audio_active;
+#ifdef DISABLE_SDL_CONVERSIONS
             SDL_AudioSpec actual;
             audio_active = (SDL_OpenAudio(&wanted, &actual) == 0);
             if ( audio_active ) {
                 ActualSpec(&actual);
+#else
+            audio_active = (SDL_OpenAudio(&wanted, NULL) == 0);
+            if ( audio_active ) {
+                ActualSpec(&wanted);
+#endif
                 valid_stream = true;
             } else {
                 SetError(SDL_GetError());
@@ -112,6 +118,8 @@ MPEGaudio:: WantedSpec(SDL_AudioSpec *wanted)
 void
 MPEGaudio:: ActualSpec(const SDL_AudioSpec *actual)
 {
+#ifdef DISABLE_SDL_CONVERSIONS
+
     /* Splay can optimize some of the conversion */
     if ( actual->channels == 1 && outputstereo ) {
         forcetomonoflag = true;
@@ -131,6 +139,9 @@ MPEGaudio:: ActualSpec(const SDL_AudioSpec *actual)
 	;
 #endif
     }
+
+#endif	/* DISABLE_SDL_CONVERSIONS */
+
 #if SDL_BYTEORDER == SDL_LIL_ENDIAN
     if ( actual->format != AUDIO_S16LSB)
 #else
@@ -200,9 +211,11 @@ void
 MPEGaudio:: Stop(void)
 {
     if ( valid_stream ) {
-        SDL_LockAudio();
+        if ( sdl_audio )
+            SDL_LockAudio();
         playing = false;
-        SDL_UnlockAudio();
+        if ( sdl_audio )
+            SDL_UnlockAudio();
     }
     ResetPause();
 }
