Index: code/branches/presentation2/src/orxonox/sound/BaseSound.cc
===================================================================
--- code/branches/presentation2/src/orxonox/sound/BaseSound.cc	(revision 6259)
+++ code/branches/presentation2/src/orxonox/sound/BaseSound.cc	(revision 6260)
@@ -55,5 +55,6 @@
         {
             alGenSources(1, &this->audioSource_);
-            assert(this->audioSource_ != 0);
+            if (!alIsSource(this->audioSource_))
+                COUT(1) << "Sound: Source generation failed: " << SoundManager::getALErrorString(alGetError()) << std::endl;
         }
     }
@@ -62,5 +63,5 @@
     {
         this->setSource("");
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
             alDeleteSources(1, &this->audioSource_);
     }
@@ -77,5 +78,5 @@
     {
         this->state_ = Playing;
-        if (GameMode::playsSound() && this->getSourceState() != AL_PLAYING)
+        if (GameMode::playsSound() && alIsSource(this->audioSource_) && this->getSourceState() != AL_PLAYING)
         {
             alSourcePlay(this->audioSource_);
@@ -89,5 +90,5 @@
     {
         this->state_ = Stopped;
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
             alSourceStop(this->audioSource_);
     }
@@ -98,5 +99,5 @@
             return;
         this->state_ = Paused;
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
             alSourcePause(this->audioSource_);
     }
@@ -104,5 +105,5 @@
     ALint BaseSound::getSourceState() const
     {
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
         {
             ALint state;
@@ -145,5 +146,5 @@
     {
         this->bLoop_ = val;
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
             alSourcei(this->audioSource_, AL_LOOPING, (val ? AL_TRUE : AL_FALSE));
     }
@@ -158,5 +159,5 @@
         }        
         this->pitch_ = pitch;
-        if (GameMode::playsSound())
+        if (GameMode::playsSound() && alIsSource(this->audioSource_))
         {
             if (int error = alGetError())
@@ -176,7 +177,10 @@
         if (this->soundBuffer_ != NULL)
         {
-            alSourceStop(this->audioSource_);
-            // Unload old sound first
-            alSourcei(this->audioSource_, AL_BUFFER, 0);
+            if (alIsSource(this->audioSource_))
+            {
+                alSourceStop(this->audioSource_);
+                // Unload old buffer first
+                alSourcei(this->audioSource_, AL_BUFFER, 0);
+            }
             SoundManager::getInstance().releaseSoundBuffer(this->soundBuffer_, this->bPooling_);
             this->soundBuffer_.reset();
@@ -184,5 +188,5 @@
 
         this->source_ = source;
-        if (source_.empty())
+        if (source_.empty() || !alIsSource(this->audioSource_))
             return;
 
@@ -200,7 +204,7 @@
 
         alSourcei(this->audioSource_, AL_BUFFER, this->soundBuffer_->getBuffer());
-        if (alGetError() != AL_NO_ERROR)
-        {
-            COUT(2) << "Sound: OpenAL: Error loading sample file: " << source << std::endl;
+        if (ALuint error = alGetError())
+        {
+            COUT(1) << "Sound Error: Could not load file \"" << source << "\": " << SoundManager::getALErrorString << std::endl;
             return;
         }
Index: code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc
===================================================================
--- code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc	(revision 6259)
+++ code/branches/presentation2/src/orxonox/sound/SoundBuffer.cc	(revision 6260)
@@ -87,5 +87,5 @@
         delete[] buffer;
 
-        if (this->audioBuffer_ == AL_NONE)
+        if (!alIsBuffer(this->audioBuffer_))
             ThrowException(General, "Sound Error: Standard file loader failed: " << alutGetErrorString(alutGetError()));
     }
@@ -170,5 +170,5 @@
         ov_clear(&vf);
 
-        if (this->audioBuffer_ == AL_NONE)
+        if (!alIsBuffer(this->audioBuffer_))
             ThrowException(General, "Sound: Ogg file loader failed when creating the buffer.");
     }
