Index: /branches/christmas_branche/src/story_entities/world.cc
===================================================================
--- /branches/christmas_branche/src/story_entities/world.cc	(revision 6207)
+++ /branches/christmas_branche/src/story_entities/world.cc	(revision 6208)
@@ -347,5 +347,5 @@
 //  tn->addChild(this->localCamera);
   localCamera->setClipRegion(1, 10000.0);
-  localCamera->lookAt(playable);
+//  localCamera->lookAt(playable);
 //  this->localPlayer->setParentMode(PNODE_ALL);
   if (sky != NULL)
@@ -355,4 +355,5 @@
   }
 
+  this->localCamera->getTarget()->getParent()->debugNode(0);
   SoundEngine::getInstance()->setListener(this->localCamera);
 
Index: /branches/christmas_branche/src/util/state.cc
===================================================================
--- /branches/christmas_branche/src/util/state.cc	(revision 6207)
+++ /branches/christmas_branche/src/util/state.cc	(revision 6208)
@@ -26,6 +26,6 @@
 
 
-const PNode* State::camera = NULL;
-const PNode* State::cameraTarget = NULL;
+PNode* State::camera = NULL;
+PNode* State::cameraTarget = NULL;
 
 ObjectManager* State::objectManager = NULL;
@@ -34,5 +34,5 @@
  *  sets camera and target of the current Camera
 */
-void State::setCamera(const PNode* camera, const PNode* cameraTarget)
+void State::setCamera(PNode* camera, PNode* cameraTarget)
 {
   State::camera = camera;
Index: /branches/christmas_branche/src/util/state.h
===================================================================
--- /branches/christmas_branche/src/util/state.h	(revision 6207)
+++ /branches/christmas_branche/src/util/state.h	(revision 6208)
@@ -25,9 +25,9 @@
    //////////////
   /** @param camera the PNode to the Camera, @param cameraTarget the PNode to the Camera's target */
-  static void setCamera(const PNode* camera, const PNode* cameraTarget);
+  static void setCamera(PNode* camera, PNode* cameraTarget);
   /** @returns a Pointer to the PNode of the Camera */
-  static inline const PNode* getCamera() { return State::camera; };
+  static inline PNode* getCamera() { return State::camera; };
   /** @returns a Pointer to the CameraTarget */
-  static inline const PNode* getCameraTarget() { return State::cameraTarget; };
+  static inline PNode* getCameraTarget() { return State::cameraTarget; };
 
   //////////////////////
@@ -46,6 +46,6 @@
   State();
 
-  static const PNode*           camera;             //!< A reference to the camera
-  static const PNode*           cameraTarget;       //!< A reference to the cameraTarget
+  static PNode*                 camera;             //!< A reference to the camera
+  static PNode*                 cameraTarget;       //!< A reference to the cameraTarget
   static PNode*                 nullParent;         //!< A reference to the Null-PNode.
   static ObjectManager*         objectManager;      //!< A referenct to the current ObjectManager
Index: /branches/christmas_branche/src/world_entities/camera.cc
===================================================================
--- /branches/christmas_branche/src/world_entities/camera.cc	(revision 6207)
+++ /branches/christmas_branche/src/world_entities/camera.cc	(revision 6208)
@@ -119,6 +119,6 @@
     case VIEW_NORMAL:
       this->toFovy = 60.0;
-      this->setParentSoft("TrackNode");
-      this->target->setParentSoft("TrackNode");
+/*      this->setParentSoft("TrackNode");
+      this->target->setParentSoft("TrackNode"); */
       this->setRelCoorSoft(-10, 5, 0);
       this->target->setRelCoorSoft(0,0,0);
@@ -129,9 +129,9 @@
   //    this->target->setRelCoorSoft(Vector(10,0,0));
 
-      if (!strcmp(this->target->getParent()->getName(), "Player"))
-        this->target->setParentSoft("TrackNode");
-      else
-        this->target->setParentSoft("Player");
-      this->getParent()->debugNode(0);
+//       if (!strcmp(this->target->getParent()->getName(), "Player"))
+//         this->target->setParentSoft("TrackNode");
+//       else
+//         this->target->setParentSoft("Player");
+//       this->getParent()->debugNode(0);
 
 //      this->setParent("main-Turret");
@@ -142,6 +142,6 @@
     case VIEW_FRONT:
       this->toFovy = 120.0;
-       this->setParentSoft("Player");
-       this->target->setParentSoft("Player");
+/*       this->setParentSoft("Player");
+       this->target->setParentSoft("Player");*/
        this->setRelCoorSoft(4, 0, 0, 5);
        this->target->setRelCoorSoft(Vector(10,0,0), 5);
@@ -150,6 +150,6 @@
     case VIEW_LEFT:
       this->toFovy = 90;
-      this->setParentSoft("TrackNode");
-      this->target->setParentSoft("TrackNode");
+/*      this->setParentSoft("TrackNode");
+      this->target->setParentSoft("TrackNode");*/
       this->setRelCoorSoft(0, 1, -10, .5);
       this->target->setRelCoorSoft(0,0,0);
@@ -157,6 +157,6 @@
     case VIEW_RIGHT:
       this->toFovy = 90;
-      this->setParentSoft("TrackNode");
-      this->target->setParentSoft("TrackNode");
+/*      this->setParentSoft("TrackNode");
+      this->target->setParentSoft("TrackNode");*/
       this->setRelCoorSoft(Vector(0, 1, 10));
       this->target->setRelCoorSoft(0,0,0);
@@ -164,6 +164,6 @@
     case VIEW_TOP:
       this->toFovy= 120;
-      this->setParentSoft("TrackNode");
-      this->target->setParentSoft("TrackNode");
+/*      this->setParentSoft("TrackNode");
+      this->target->setParentSoft("TrackNode");*/
       this->setRelCoorSoft(Vector(30, 50, 0));
       this->target->setRelCoorSoft(35,0,0);
Index: /branches/christmas_branche/src/world_entities/creatures/md2_creature.cc
===================================================================
--- /branches/christmas_branche/src/world_entities/creatures/md2_creature.cc	(revision 6207)
+++ /branches/christmas_branche/src/world_entities/creatures/md2_creature.cc	(revision 6208)
@@ -23,4 +23,5 @@
 #include "md2Model.h"
 #include "resource_manager.h"
+#include "state.h"
 
 #include "weapons/weapon_manager.h"
@@ -122,4 +123,9 @@
   cycle = 0.0;
 
+  this->cameraConnNode.addNodeFlags(PNODE_PROHIBIT_DELETE_WITH_PARENT);
+  this->cameraConnNode.setName("CameraConnectorNode");
+  this->addChild(&this->cameraConnNode);
+  this->cameraConnNode.addChild(State::getCameraTarget());
+  State::getCameraTarget()->setRelCoor(10,0,0);
 
   travelSpeed = 15.0;
@@ -239,4 +245,6 @@
 {
   this->drawLODsafe();
+
+  this->cameraConnNode.debugDraw(0);
 }
 
@@ -274,6 +282,8 @@
   }
 
+
   //orient the MD2Creature in direction of the mouse
   this->setAbsDir( /*rotQuat*/ mouseDirX);
+  this->cameraConnNode.setRelDir(mouseDirY);
 
   this->getWeaponManager()->tick(time);
@@ -377,5 +387,5 @@
     this->yMouse = event.yRel;
     this->mouseDirX *= Quaternion(-M_PI/4*xMouse*mouseSensitivity, Vector(0,1,0));
-    this->mouseDirY *= Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,0,1));
+    this->mouseDirY *= Quaternion(-M_PI/4*yMouse*mouseSensitivity, Vector(0,1,0));
 //     if( xMouse*xMouse < 0.9)
 //      this->setAbsDir(mouseDir);
Index: /branches/christmas_branche/src/world_entities/creatures/md2_creature.h
===================================================================
--- /branches/christmas_branche/src/world_entities/creatures/md2_creature.h	(revision 6207)
+++ /branches/christmas_branche/src/world_entities/creatures/md2_creature.h	(revision 6208)
@@ -62,4 +62,6 @@
     bool                  bJump;              //!< jump
 
+    PNode                 cameraConnNode;     //!< The Node the camera is connected to.
+
     float                 xMouse;             //!< mouse moved in x-Direction
     float                 yMouse;             //!< mouse moved in y-Direction
@@ -70,5 +72,4 @@
     Quaternion            mouseDirX;           //!< the direction where the player wants to fly
     Quaternion            mouseDirY;           //!< the direction where the player wants to fly
-    Quaternion rotQuat;
     float                 travelSpeed;        //!< the current speed of the player (to make soft movement)
     float                 acceleration;       //!< the acceleration of the player.
