Index: trunk/src/story_entities/campaign.cc
===================================================================
--- trunk/src/story_entities/campaign.cc	(revision 7279)
+++ trunk/src/story_entities/campaign.cc	(revision 7283)
@@ -79,5 +79,5 @@
   PRINTF(2)("Starting Campaign nr. %i\n", this->getStoryID());
 
-  this->isRunning = true;
+  this->bRunning = true;
   this->bReturnToMenu = false;
   this->run();
@@ -90,5 +90,5 @@
 bool Campaign::pause()
 {
-  this->isPaused = true;
+  this->bPaused = true;
 }
 
@@ -100,5 +100,5 @@
 {
   PRINTF(4)("Resuming the current Campaign\n");
-  this->isPaused = false;
+  this->bPaused = false;
 }
 
@@ -113,5 +113,5 @@
     this->bReturnToMenu = true;
   else
-    this->isRunning = false;  // fast exit
+    this->bRunning = false;  // fast exit
   if( this->currentEntity != NULL)
   {
@@ -129,6 +129,6 @@
   int                storyID = WORLD_ID_0;
 
-  for( this->currentEntity = this->campaignData->getFirstLevel(), this->isRunning = true;
-       this->currentEntity != NULL && this->isRunning;
+  for( this->currentEntity = this->campaignData->getFirstLevel(), this->bRunning = true;
+       this->currentEntity != NULL && this->bRunning;
        this->currentEntity = this->campaignData->getNextLevel())
   {
Index: trunk/src/story_entities/game_world.cc
===================================================================
--- trunk/src/story_entities/game_world.cc	(revision 7279)
+++ trunk/src/story_entities/game_world.cc	(revision 7283)
@@ -89,4 +89,6 @@
 
   this->dataXML = NULL;
+
+  this->audioThread = NULL;
 }
 
@@ -100,4 +102,7 @@
 {
   PRINTF(4)("Deleted GameWorld\n");
+
+  if (this->audioThread != NULL)
+    SDL_KillThread(this->audioThread);
 }
 
@@ -131,4 +136,16 @@
 }
 
+int GameWorld::createAudioThread(void* gameWorld)
+{
+  GameWorld* gw = (GameWorld*)gameWorld;
+  printf("STARTIG AUDIO THREAD\n");
+  while (gw->bRunning)
+  {
+    if(gw->dataTank->music != NULL)
+      gw->dataTank->music->playback();
+    SDL_Delay(5);
+  }
+  printf("End the AudioThread\n");
+}
 
 /**
@@ -199,6 +216,9 @@
 bool GameWorld::start()
 {
-  this->isPaused = false;
-  this->isRunning = true;
+  this->bPaused = false;
+  this->bRunning = true;
+
+  if (this->audioThread == NULL)
+    this->audioThread = SDL_CreateThread(GameWorld::createAudioThread, (void*)this);
 
   this->run();
@@ -212,5 +232,8 @@
 {
   PRINTF(3)("GameWorld::stop() - got stop signal\n");
-  this->isRunning = false;
+  this->bRunning = false;
+
+//  SDL_KillThread(this->audioThread);
+  this->audioThread = NULL;
 }
 
@@ -221,5 +244,5 @@
 bool GameWorld::pause()
 {
-  this->isPaused = true;
+  this->bPaused = true;
 }
 
@@ -230,5 +253,5 @@
 bool GameWorld::resume()
 {
-  this->isPaused = false;
+  this->bPaused = false;
 }
 
@@ -243,8 +266,4 @@
 void GameWorld::run()
 {
-  /* start the music */
-  if(this->dataTank->music != NULL)
-    this->dataTank->music->playback();
-
   PRINTF(3)("GameWorld::mainLoop() - Entering main loop\n");
 
@@ -256,9 +275,9 @@
   this->lastFrame = SDL_GetTicks ();
 
-  while( this->isRunning) /* @todo implement pause */
+  while( this->bRunning) /* @todo implement pause */
   {
     /* process intput */
     this->handleInput ();
-    if( !this->isRunning)
+    if( !this->bRunning)
       break;
 
@@ -326,5 +345,5 @@
   Uint32 currentFrame = SDL_GetTicks();
 
-  if( !this->isPaused)
+  if( !this->bPaused)
   {
     // CALCULATE FRAMERATE
Index: trunk/src/story_entities/game_world.h
===================================================================
--- trunk/src/story_entities/game_world.h	(revision 7279)
+++ trunk/src/story_entities/game_world.h	(revision 7283)
@@ -10,4 +10,6 @@
 #include "story_entity.h"
 #include "game_world_data.h"
+
+#include <SDL_thread.h>
 
 class Shell;
@@ -54,5 +56,5 @@
     static void toggleBVVisibility();
 
-
+    static int createAudioThread(void* GameWorld);
 
 
@@ -78,4 +80,5 @@
 
   protected:
+    SDL_Thread*         audioThread;
     GameWorldData*      dataTank;                     //!< reference to the GameWorld Data Tank
     TiXmlElement*       dataXML;                      //!< The XML-Element this World has been loaded with.
Index: trunk/src/story_entities/movie_loader.cc
===================================================================
--- trunk/src/story_entities/movie_loader.cc	(revision 7279)
+++ trunk/src/story_entities/movie_loader.cc	(revision 7283)
@@ -79,5 +79,5 @@
   this->movie_player->start(0);
 
-  this->isRunning = true;
+  this->bRunning = true;
   this->run();
 }
@@ -87,5 +87,5 @@
   EventHandler::getInstance()->popState();
 
-  this->isRunning = false;
+  this->bRunning = false;
 }
 
@@ -98,5 +98,5 @@
   this->lastFrame = SDL_GetTicks ();
 
-  while( this->isRunning)
+  while( this->bRunning)
   {
     EventHandler::getInstance()->process();
@@ -146,5 +146,5 @@
 
   if (movie_player->getStatus() == STOP)
-    this->isRunning = false;
+    this->bRunning = false;
 
   this->lastFrame = currentFrame;
Index: trunk/src/story_entities/story_entity.cc
===================================================================
--- trunk/src/story_entities/story_entity.cc	(revision 7279)
+++ trunk/src/story_entities/story_entity.cc	(revision 7283)
@@ -36,7 +36,7 @@
   this->setClassID(CL_STORY_ENTITY, "StoryEntity");
 
-  this->isInit = false;
-  this->isPaused = false;
-  this->isRunning = false;
+  this->bInit = false;
+  this->bPaused = false;
+  this->bRunning = false;
 
   this->loadFile = "";
Index: trunk/src/story_entities/story_entity.h
===================================================================
--- trunk/src/story_entities/story_entity.h	(revision 7279)
+++ trunk/src/story_entities/story_entity.h	(revision 7283)
@@ -24,7 +24,8 @@
 
 //! A class that represents something to play in orxonox. it is a container for worlds, movies, mission briefings, etc...
-class StoryEntity : virtual public BaseObject {
+class StoryEntity : virtual public BaseObject
+{
 
- public:
+public:
   StoryEntity ();
   virtual ~StoryEntity ();
@@ -85,19 +86,19 @@
   inline const std::string& getMenuScreenshoot() { return this->menuScreenshoot; }
 
-  protected:
-    bool          isInit;            //!< if the entity is initialized, this has to be true.
-    bool          isRunning;         //!< is true if the entity is running
-    bool          isPaused;          //!< is true if the entity is paused
+protected:
+  bool          bInit;             //!< if the entity is initialized, this has to be true.
+  bool          bRunning;          //!< is true if the entity is running
+  bool          bPaused;           //!< is true if the entity is paused
 
 
- private:
-    int           storyID;          //!< this is the number of this entity, identifying it in a list/tree...
-    int           nextStoryID;      //!< if this entity has finished, this entity shall be called
-    std::string   loadFile;         //!< The file from which this world is loaded
+private:
+  int           storyID;          //!< this is the number of this entity, identifying it in a list/tree...
+  int           nextStoryID;      //!< if this entity has finished, this entity shall be called
+  std::string   loadFile;         //!< The file from which this world is loaded
 
-    std::string   description;      //!< the description of the StoryEntity
-    std::string   menuItemImage;    //!< the item image of the StoryEntity
-    std::string   menuScreenshoot;  //!< the screenshoot of the StoryEntity
-    bool          bMenuEntry;       //!< If true, this GameWorld apears in the SimpleMenu: SimpleMenu specific
+  std::string   description;      //!< the description of the StoryEntity
+  std::string   menuItemImage;    //!< the item image of the StoryEntity
+  std::string   menuScreenshoot;  //!< the screenshoot of the StoryEntity
+  bool          bMenuEntry;       //!< If true, this GameWorld apears in the SimpleMenu: SimpleMenu specific
 };
 
