--- a/apricots/apricots.cpp
+++ b/apricots/apricots.cpp
@@ -16,6 +16,7 @@
 int main(int, char**){
 #endif
 
+atexit(SDL_Quit);
   // Initialize data
   gamedata g;
   init_data(g);

--- a/apricots/sampleio.cpp
+++ b/apricots/sampleio.cpp
@@ -74,12 +74,9 @@
   alListenerfv(AL_ORIENTATION, front );
 
   // Load in samples
-  ALvoid* data = malloc(5 * (512 * 3) * 1024);
   alGenBuffers(numsamples, samples);
 
   for (int i = 0; i < numsamples; i++){
-    ALsizei freq;
-    ALboolean fileok;
     // Evil OpenAL portability fix done here
 #ifdef _WIN32
     ALenum format;
@@ -87,15 +84,12 @@
     alutLoadWAVFile(filenames[i],&format,&data,&filelen,&freq,&trash);
     fileok = (alGetError() == AL_NO_ERROR);
 #else
-    ALsizei format;
-    ALsizei trash;
-    fileok = alutLoadWAV(filenames[i],&data,&format,&filelen,&trash,&freq);
+	samples[i] = alutCreateBufferFromFile(filenames[i]);
 #endif
-    if (!fileok){
+    if (samples[i] == AL_NONE){
       cerr << "sampleio: could not open " << filenames[i] << endl;
       exit(1);
     }         
-    alBufferData(samples[i], format, data, filelen, freq);
   }
 
   // Generate Sources
@@ -107,7 +101,6 @@
     alSourcefv(sources[j], AL_ORIENTATION, back );
   }
   
-  free(data);
   
 }
 

--- a/configure.in
+++ b/configure.in
@@ -100,7 +100,8 @@
 
 dnl Check for OpenAL
 AC_CHECK_HEADER(AL/al.h,[CXXFLAGS="$CXXFLAGS -DAP_AUDIO_OPENAL"])
-AC_CHECK_LIB( openal, alutInit)
+AC_CHECK_LIB( openal, alGetError)
+AC_CHECK_LIB( alut, alutInit)
 
 KDE_CHECK_EXTRA_LIBS
 all_libraries="$all_libraries $USER_LDFLAGS"
