Index: code/branches/sound5/src/orxonox/sound/AmbientSound.cc
===================================================================
--- code/branches/sound5/src/orxonox/sound/AmbientSound.cc	(revision 6561)
+++ code/branches/sound5/src/orxonox/sound/AmbientSound.cc	(revision 6562)
@@ -175,4 +175,7 @@
 
         this->soundstreamthread_ = boost::thread(SoundStreamer(), this->audioSource_, dataStream);
+        if(this->soundstreamthread_ == boost::thread())
+            COUT(2) << "Sound: Failed to create thread." << std::endl;
+
 
         this->updateVolume();
Index: code/branches/sound5/src/orxonox/sound/SoundManager.cc
===================================================================
--- code/branches/sound5/src/orxonox/sound/SoundManager.cc	(revision 6561)
+++ code/branches/sound5/src/orxonox/sound/SoundManager.cc	(revision 6562)
@@ -116,5 +116,6 @@
 
         // Create sound context and make it the currently used one
-        this->context_ = alcCreateContext(this->device_, NULL);
+        const ALint contattr[]  = {ALC_SYNC, 1, 0};
+        this->context_ = alcCreateContext(this->device_, contattr);
         if (this->context_ == NULL)
             ThrowException(InitialisationFailed, "Sound: Error: Could not create ALC context");
Index: code/branches/sound5/src/orxonox/sound/SoundStreamer.cc
===================================================================
--- code/branches/sound5/src/orxonox/sound/SoundStreamer.cc	(revision 6561)
+++ code/branches/sound5/src/orxonox/sound/SoundStreamer.cc	(revision 6562)
@@ -28,4 +28,5 @@
 
 #include <al.h>
+#include <alc.h>
 #include <vorbis/vorbisfile.h>
 #include "SoundManager.h"
@@ -67,4 +68,8 @@
         ALuint initbuffers[4];
         alGenBuffers(4, initbuffers);
+        if (ALint error = alGetError()) {
+            COUT(2) << "Sound: Streamer: Could not generate buffer:" << getALErrorString(error) << std::endl;
+            return;
+        }
         int current_section;
 
@@ -84,13 +89,21 @@
 
             alBufferData(initbuffers[i], format, &inbuffer, ret, vorbisInfo->rate);
+            alGetError();
         }
         alSourceQueueBuffers(audioSource, 4, initbuffers);
+        if (ALint error = alGetError()) {
+            COUT(2) << "Sound: Warning: Couldn't queue buffers: " << getALErrorString(error) << std::endl;
+        }
 
         while(true) // Stream forever, control through thread control
         {
             int processed;
+
+        if(alcGetCurrentContext() == NULL)
+            COUT(2) << "This should not be!" << std::endl;
+
             alGetSourcei(audioSource, AL_BUFFERS_PROCESSED, &processed);
             if (ALint error = alGetError())
-            COUT(2) << "Sound Warning: Couldn't get number of processed buffers: " << getALErrorString(error) << std::endl;
+            COUT(2) << "Sound: Warning: Couldn't get number of processed buffers: " << getALErrorString(error) << std::endl;
 
             if(processed > 0)
@@ -99,5 +112,5 @@
                 alSourceUnqueueBuffers(audioSource, processed, buffers);
                 if (ALint error = alGetError())
-                    COUT(2) << "Sound Warning: Couldn't unqueue buffers: " << getALErrorString(error) << std::endl;
+                    COUT(2) << "Sound: Warning: Couldn't unqueue buffers: " << getALErrorString(error) << std::endl;
 
                 for(int i = 0; i < processed; i++)
@@ -116,11 +129,12 @@
 
                     alBufferData(buffers[i], format, &inbuffer, ret, vorbisInfo->rate);
+                    alGetError();
                 }
 
                 alSourceQueueBuffers(audioSource, processed, buffers);
                 if (ALint error = alGetError())
-                    COUT(2) << "Sound Warning: Couldn't queue buffers: " << getALErrorString(error) << std::endl;
+                    COUT(2) << "Sound: Warning: Couldn't queue buffers: " << getALErrorString(error) << std::endl;
             }
-            msleep(250); // perhaps another value here is better
+            msleep(100); // perhaps another value here is better
         }
     }
