Index: sound.c
===================================================================
--- sound.c	(revision 166)
+++ sound.c	(revision 167)
@@ -682,8 +682,9 @@
 int StartMusic(ALuint musicsource,ALuint *buffers,OggVorbis_File *file,
       vorbis_info *ogginfo)
 {
-  int ok;
-  alSourceStop(musicsource);
+  int ok;
+  alSourceStop(musicsource);
+  raydium_sound_internal_cleanstreambuffs();
   memset(raydium_sound_music_buf,0,SOUNDDATASIZE);
   ok=BufferData(raydium_sound_buffer[0],file,ogginfo) 
      && BufferData(raydium_sound_buffer[1],file,ogginfo);
@@ -703,6 +704,7 @@
 if(!raydium_sound)
     return -1;
 
+
 
  if(raydium_sound_music_file) fclose(raydium_sound_music_file);
  raydium_sound_music_file=NULL;
@@ -710,7 +712,7 @@
  if(fname==NULL || strlen(fname)==0)
     {
     // seems to fail ... :/
-    raydium_sound_internal_cleanstreambuffs();
+    //raydium_sound_internal_cleanstreambuffs();
     return 0;
     }
  
@@ -740,7 +742,7 @@
  
 // size = bits/8 * ov_info(&raydium_sound_vf, 0)->channels; 
 StartMusic(raydium_sound_source[0],raydium_sound_buffer,
-           &raydium_sound_vf,raydium_sound_ogginfo);
+           &raydium_sound_vf,raydium_sound_ogginfo);
  
 return(0);
 }