Index: /code/branches/FICN/src/audio/AudioManager.cc
===================================================================
--- /code/branches/FICN/src/audio/AudioManager.cc	(revision 422)
+++ /code/branches/FICN/src/audio/AudioManager.cc	(revision 423)
@@ -7,12 +7,13 @@
  		alutInit(NULL, 0);
 
-		bgSound.open("ambient3");
+		bgSound.open("ambient1");
+
+
+
 		bgSound.display();
-		
-		orxonox::Error("Sound loaded!");
 
 		if(!bgSound.playback())
 		{
-    	std::cout << "Ogg refused to play.";
+    	orxonox::Error("Ogg refused to play.");
 		}
 	}
@@ -26,12 +27,16 @@
 	void AudioManager::update()
 	{
-		bgSound.update();
-    if(!bgSound.playing())
-    {
-        if(!bgSound.playback())
-            std::cout << "Ogg abruptly stopped.";
-        else
-            std::cout << "Ogg stream was interrupted.\n";
-    }
+		
+		if (bgSound.isLoaded())
+		{
+			bgSound.update();
+	    if(!bgSound.playing())
+	    {
+	        if(!bgSound.playback())
+	            orxonox::Error("Ogg abruptly stopped.");
+	        else
+	            orxonox::Error("Ogg stream was interrupted.");
+	    }
+		}
 	}
 	
Index: /code/branches/FICN/src/audio/AudioStream.cc
===================================================================
--- /code/branches/FICN/src/audio/AudioStream.cc	(revision 422)
+++ /code/branches/FICN/src/audio/AudioStream.cc	(revision 423)
@@ -7,16 +7,22 @@
 	{
 	    int result;
+			loaded = false;
 	    
 	    path = "audio/ambient/" + path + ".ogg"; 
 	    
 	    if(!(oggFile = fopen(path.c_str(), "rb")))
-	        throw std::string("Could not open Ogg file.");
-	
+			{
+	    	orxonox::Error("Could not open Ogg file "+path);
+				return;
+			}
+
 	    if((result = ov_open(oggFile, &oggStream, NULL, 0)) < 0)
 	    {
-	        fclose(oggFile);
-	        
-	        throw std::string("Could not open Ogg stream. ") + errorString(result);
-	    }
+        fclose(oggFile);	        
+	      orxonox::Error("Could not open Ogg stream. " + errorString(result));
+				return;
+	    }
+
+			loaded = true;
 	
 	    vorbisInfo = ov_info(&oggStream, -1);
@@ -38,5 +44,5 @@
 	    alSource3f(source, AL_DIRECTION,       0.0, 0.0, 0.0);
 	    alSourcef (source, AL_ROLLOFF_FACTOR,  0.0          );
-	    alSourcei (source, AL_SOURCE_RELATIVE, AL_TRUE      );
+	    alSourcei (source, AL_SOURCE_RELATIVE, AL_FALSE      );
 	}
 	
@@ -46,4 +52,6 @@
 	void AudioStream::release()
 	{
+		if (loaded)
+		{
 	    alSourceStop(source);
 	    empty();
@@ -54,4 +62,6 @@
 	
 	    ov_clear(&oggStream);
+			loaded = false;
+		}
 	}
 	
@@ -61,4 +71,6 @@
 	void AudioStream::display()
 	{
+		if (loaded)
+		{
 	    std::cout
 	        << "version         " << vorbisInfo->version         << "\n"
@@ -75,5 +87,6 @@
 	        std::cout << "   " << vorbisComment->user_comments[i] << "\n";
 	        
-	    std::cout << std::endl;
+	    std::cout << std::endl;	
+		}
 	}
 	
@@ -83,4 +96,9 @@
 	bool AudioStream::playback()
 	{
+		if (!loaded)
+		{
+			return false;
+		}
+
 	    if(playing())
 	        return true;
@@ -103,8 +121,11 @@
 	bool AudioStream::playing()
 	{
+		if (!loaded)
+		{
+			return false;
+		}
+
 	    ALenum state;
-	    
 	    alGetSourcei(source, AL_SOURCE_STATE, &state);
-	    
 	    return (state == AL_PLAYING);
 	}
@@ -154,5 +175,5 @@
 	        else
 	            if(result < 0)
-	                throw errorString(result);
+	                orxonox::Error(errorString(result));
 	            else
 	                break;
@@ -169,6 +190,5 @@
 	
 	
-	
-	
+
 	void AudioStream::empty()
 	{
@@ -194,5 +214,5 @@
 	
 		if(error != AL_NO_ERROR)
-			throw std::string("OpenAL error was raised.");
+			orxonox::Error("OpenAL error was raised.");
 	}
 	
Index: /code/branches/FICN/src/audio/AudioStream.h
===================================================================
--- /code/branches/FICN/src/audio/AudioStream.h	(revision 422)
+++ /code/branches/FICN/src/audio/AudioStream.h	(revision 423)
@@ -19,5 +19,6 @@
 	        bool playing();
 	        bool update();
-	
+					inline bool isLoaded() { return loaded; }	
+
 	    protected:
 	
@@ -33,5 +34,6 @@
 	        vorbis_info*    vorbisInfo;
 	        vorbis_comment* vorbisComment;
-	
+					bool loaded;	
+
 	        ALuint buffers[2];
 	        ALuint source;
Index: /code/branches/FICN/src/orxonox/core/Error.cc
===================================================================
--- /code/branches/FICN/src/orxonox/core/Error.cc	(revision 422)
+++ /code/branches/FICN/src/orxonox/core/Error.cc	(revision 423)
@@ -15,24 +15,21 @@
 	Error::Error(int errorCode, std::string errorMsg)
 	{
-		std::cout << "Orxonox Error: ";
-
-		if (errorMsg!="")
+		std::cout << "############################ "<< std::endl
+							<< "#         Error "<<errorCode<< "          #"<< std::endl
+							<< "############################ "<< std::endl
+							<< "An error occured in Orxonox: "<< std::endl;
+						
+		if (errorMsg=="")
 		{
-			std::cout << errorMsg;	
-		}
-		else
-		{
-			std::string msg;
 			switch (errorCode)
 			{
 				case 1:
-					msg = "General error";
+					errorMsg = "Some error!";
 					break;
 				default:
-					msg = "Unknown error!";
+					errorMsg = "Unknown error!";
 			}
-			std::cout << msg;
 		}
-		std::cout << " (Code " << errorCode << ")" << std::endl<< std::endl;
+		std::cout << errorMsg << std::endl<< std::endl;
 	}
 }
