Index: branches/camera/src/story_entities/game_world_data.cc
===================================================================
--- branches/camera/src/story_entities/game_world_data.cc	(revision 10258)
+++ branches/camera/src/story_entities/game_world_data.cc	(revision 10259)
@@ -70,5 +70,5 @@
   this->glmis = NULL;
 
-  this->localCamera = NULL;
+
   this->localPlayer = NULL;
   this->sky = NULL;
@@ -98,7 +98,7 @@
 
   PNode::getNullParent();
-  this->localCamera = new Camera();
-  this->localCamera->setName ("GameWorld-Camera");
-  State::setCamera(this->localCamera, this->localCamera->getTarget());
+  Camera* localCamera = new Camera();
+  localCamera->setName ("GameWorld-Camera");
+  State::setCamera(localCamera, localCamera->getTarget());
 
   LightManager::getInstance();
@@ -232,5 +232,4 @@
   State::setPlayer(this->localPlayer);
 
-  Playable* playable;
   if (!Playable::objectList().empty())
   {
@@ -284,5 +283,4 @@
   State::setPlayer(NULL);
   this->localPlayer = NULL;
-  this->localCamera = NULL;
   State::setCamera(NULL, NULL);
   this->sky = NULL;
@@ -334,5 +332,5 @@
   LoadParamXML(root, "GameRule", this, GameWorldData, loadGameRule);
 
-  LoadParam(root, "clip-region", this->localCamera, Camera, setClipRegion);
+  LoadParam(root, "clip-region", State::getCamera(), Camera, setClipRegion);
 
 
@@ -340,7 +338,6 @@
   //LoadParamXML(root, "PhysicsEngine", PhysicsEngine::getInstance(), PhysicsEngine, loadParams);
 
-  if( this->sky != NULL)
-    this->localCamera->addChild(this->sky);
-  OrxSound::SoundEngine::getInstance()->setListener(this->localCamera);
+
+  OrxSound::SoundEngine::getInstance()->setListener(State::getCamera());
 
   return ErrorMessage();
Index: branches/camera/src/story_entities/game_world_data.h
===================================================================
--- branches/camera/src/story_entities/game_world_data.h	(revision 10258)
+++ branches/camera/src/story_entities/game_world_data.h	(revision 10259)
@@ -56,5 +56,5 @@
     GLMenuImageScreen*            glmis;          //!< The Level-Loader Display
 
-    Camera*                       localCamera;    //!< The current camera
+
     Player*                       localPlayer;    //!< The player, you fly through the level.
     WorldEntity*                  sky;            //!< The environmental sky of orxonox
Index: branches/camera/src/story_entities/menu/game_menu.cc
===================================================================
--- branches/camera/src/story_entities/menu/game_menu.cc	(revision 10258)
+++ branches/camera/src/story_entities/menu/game_menu.cc	(revision 10259)
@@ -110,5 +110,5 @@
   this->subscribeEvent(ES_MENU, SDLK_ESCAPE);
 
-  this->dataTank->localCamera->setRelCoor(this->cameraVector);
+  State::getCamera()->setRelCoor(this->cameraVector);
 
   GraphicsEngine::getInstance()->displayFPS(false);
@@ -390,6 +390,6 @@
   Quaternion q(/*0.00005*/ dt * .1, Vector(0.0, 1.0, 0.0));
   this->cameraVector = q.apply(this->cameraVector);
-  this->dataTank->localCamera->setRelCoor(this->cameraVector);
-  this->dataTank->localCamera->getTarget()->setRelCoorSoft(0,0,0);
+  State::getCamera()->setRelCoor(this->cameraVector);
+  State::getCamera()->getTarget()->setRelCoorSoft(0,0,0);
 }
 
Index: branches/camera/src/world_entities/cameraman.cc
===================================================================
--- branches/camera/src/world_entities/cameraman.cc	(revision 10258)
+++ branches/camera/src/world_entities/cameraman.cc	(revision 10259)
@@ -19,5 +19,5 @@
 #include "state.h"
 #include "iostream.h"
-
+#include "sound_engine.h"
 
 
@@ -36,4 +36,7 @@
   this->cameras.push_back(new Camera());
   cameras[cameras.size()-1]->target->detach();
+
+
+
   cout << cameras[1]->getAbsCoorX() << "," << cameras[1]->getAbsCoorY() << "," << cameras[1]->getAbsCoorZ() << endl << cameras[1]->target->getAbsCoorX() << endl;
 
@@ -46,4 +49,6 @@
   currentCam=cameras[cameraNo];
   State::setCamera(currentCam, currentCam->getTarget());
+  OrxSound::SoundEngine::getInstance()->setListener(currentCam);
+
   }
 
Index: branches/camera/src/world_entities/skybox.cc
===================================================================
--- branches/camera/src/world_entities/skybox.cc	(revision 10258)
+++ branches/camera/src/world_entities/skybox.cc	(revision 10259)
@@ -30,4 +30,8 @@
 
 #include "debug.h"
+
+#include "state.h"
+#include "playable.h"
+#include "player.h"
 
 #include "class_id_DEPRECATED.h"
@@ -220,4 +224,22 @@
 {
   this->size = size;
+}
+
+
+
+void SkyBox::tick(float dt)
+{
+  PRINTF(0)("tick\n");
+
+  Player* pl = State::getPlayer();
+  if( pl == NULL)
+    return;
+
+  Playable* playable = pl->getPlayable();
+  if( playable == NULL)
+    return;
+
+  if( this->getParent() != playable)
+    this->setParent( playable);
 }
 
Index: branches/camera/src/world_entities/skybox.h
===================================================================
--- branches/camera/src/world_entities/skybox.h	(revision 10258)
+++ branches/camera/src/world_entities/skybox.h	(revision 10259)
@@ -42,4 +42,5 @@
 
   virtual void draw();
+  virtual void tick(float dt);
 
   void setSize(float size);
Index: branches/camera/src/world_entities/test_entity.cc
===================================================================
--- branches/camera/src/world_entities/test_entity.cc	(revision 10258)
+++ branches/camera/src/world_entities/test_entity.cc	(revision 10259)
@@ -88,5 +88,5 @@
 void TestEntity::t2()
 {
-  CM->moveCurrCam(+600, 0, 0);
+  CM->moveCurrCam(0, -150, 0);
 
 }
