Index: branches/playability/src/world_entities/camera.cc
===================================================================
--- branches/playability/src/world_entities/camera.cc	(revision 10236)
+++ branches/playability/src/world_entities/camera.cc	(revision 10237)
@@ -44,4 +44,7 @@
 
   this->setParentMode(PNODE_ALL);
+  this->eventHandling = true;
+
+
 }
 
@@ -100,29 +103,39 @@
     default:
     case Camera::ViewNormal:
+    {
       this->toFovy = 60.0;
       this->setRelCoorSoft(-10, 5, 0);
       this->target->setRelCoorSoft(0,0,0);
       break;
+    }
     case Camera::ViewBehind:
       break;
     case Camera::ViewFront:
+    {
       this->toFovy = 120.0;
       this->setRelCoorSoft(4, 0, 0, 5);
       this->target->setRelCoorSoft(Vector(10,0,0), 5);
       break;
+    }
     case Camera::ViewLeft:
+    {
       this->toFovy = 90;
       this->setRelCoorSoft(0, 1, -10, .5);
       this->target->setRelCoorSoft(0,0,0);
       break;
+    }
     case Camera::ViewRight:
+    {
       this->toFovy = 90;
       this->setRelCoorSoft(Vector(0, 1, 10));
       this->target->setRelCoorSoft(0,0,0);
       break;
+    }
     case Camera::ViewTop:
+    {
       this->toFovy= 120;
-      this->setRelCoorSoft(Vector(30, 50, 0));
-      this->target->setRelCoorSoft(35,0,0);
+      this->setRelCoor(Vector(-0.05, 40, 0));
+      this->target->setRelCoor(0,0,0);
+    }
   }
 }
@@ -192,27 +205,30 @@
 void Camera::process(const Event &event)
 {
-  if( event.type == KeyMapper::PEV_VIEW0)
+  if (eventHandling == true)
   {
-    this->setViewMode(Camera::ViewNormal);
-  }
-  else if( event.type == KeyMapper::PEV_VIEW1)
-  {
-    this->setViewMode(Camera::ViewBehind);
-  }
-  else if( event.type == KeyMapper::PEV_VIEW2)
-  {
-    this->setViewMode(Camera::ViewFront);
-  }
-  else if( event.type == KeyMapper::PEV_VIEW3)
-  {
-    this->setViewMode(Camera::ViewLeft);
-  }
-  else if( event.type == KeyMapper::PEV_VIEW4)
-  {
-    this->setViewMode(Camera::ViewRight);
-  }
-  else if( event.type == KeyMapper::PEV_VIEW5)
-  {
-    this->setViewMode(Camera::ViewTop);
+    if( event.type == KeyMapper::PEV_VIEW0)
+    {
+      this->setViewMode(Camera::ViewNormal);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW1)
+    {
+      this->setViewMode(Camera::ViewBehind);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW2)
+    {
+      this->setViewMode(Camera::ViewFront);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW3)
+    {
+      this->setViewMode(Camera::ViewLeft);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW4)
+    {
+      this->setViewMode(Camera::ViewRight);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW5)
+    {
+      this->setViewMode(Camera::ViewTop);
+    }
   }
 }
Index: branches/playability/src/world_entities/camera.h
===================================================================
--- branches/playability/src/world_entities/camera.h	(revision 10236)
+++ branches/playability/src/world_entities/camera.h	(revision 10237)
@@ -58,4 +58,7 @@
   inline float distance(const PNode* node) const { return distance(node->getAbsCoor()); }
 
+  inline void setEventHandling(bool b) {this->eventHandling = b;}
+  inline bool getEventHandling() {return this->eventHandling;}
+
   void tick(float dt);
   void apply ();
@@ -66,4 +69,6 @@
 private:
   CameraTarget*     target;          //!< The Target of the Camera (where this Camera Looks at)
+
+  bool              eventHandling;    //!< True, if the Camera handles the processing of events itself. Set false to overwrite the standard handling.
 
   float             fovy;            //!< The field of view Angle (in degrees).
Index: branches/playability/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10236)
+++ branches/playability/src/world_entities/space_ships/space_ship.cc	(revision 10237)
@@ -58,4 +58,5 @@
 #include "state.h"
 #include "player.h"
+#include "camera.h"
 
 
@@ -436,4 +437,5 @@
   this->toList( OM_GROUP_00);
   State::getPlayer()->hud().setOverlayActive(false);
+  State::getCamera()->setEventHandling(true);
   //dynamic_cast<Element2D*>(this->secWeaponMan.getFixedTarget())->setVisibility( false);
   //this->detachCamera();
@@ -619,4 +621,44 @@
     this->previousWeaponConfig();
 
+  if (!(State::getCamera()->getEventHandling()))
+  {
+    if( event.type == KeyMapper::PEV_VIEW0)
+    {
+      State::getCamera()->setViewMode(Camera::ViewNormal);
+      State::getCameraTargetNode()->setParent(this);
+      State::getCamera()->setParent(this);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW1)
+    {
+      State::getCamera()->setViewMode(Camera::ViewBehind);
+      State::getCameraTargetNode()->setParent(this);
+      State::getCamera()->setParent(this);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW2)
+    {
+      State::getCamera()->setViewMode(Camera::ViewFront);
+      State::getCameraTargetNode()->setParent(this);
+      State::getCamera()->setParent(this);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW3)
+    {
+      State::getCamera()->setViewMode(Camera::ViewLeft);
+      State::getCameraTargetNode()->setParent(this);
+      State::getCamera()->setParent(this);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW4)
+    {
+      State::getCamera()->setViewMode(Camera::ViewRight);
+      State::getCameraTargetNode()->setParent(this);
+      State::getCamera()->setParent(this);
+    }
+    else if( event.type == KeyMapper::PEV_VIEW5)
+    {
+      State::getCamera()->setViewMode(Camera::ViewTop);
+      State::getCameraTargetNode()->setParent(this->travelNode);
+      State::getCamera()->setParent(this->travelNode);
+    }
+  }
+
 
   /*
@@ -837,8 +879,18 @@
         State::getCameraNode()->setParentSoft(this->travelNode);
         //State::getCameraNode()->setParentSoft(this);
-        State::getCameraNode()->setRelCoorSoft(-0.01, 40, 0);
+        //State::getCameraNode()->setRelCoorSoft(-0.01, 40, 0);
         State::getCameraTargetNode()->setParentSoft(this->travelNode);
         //State::getCameraTargetNode()->setParentSoft(this);
-        State::getCameraTargetNode()->setRelCoorSoft(0,0,0);
+        //State::getCameraTargetNode()->setRelCoorSoft(0,0,0);
+        this->setCameraMode(Camera::ViewTop);
+        State::getCamera()->setEventHandling(false);
+        registerEvent(KeyMapper::PEV_VIEW0);
+        registerEvent(KeyMapper::PEV_VIEW1);
+        registerEvent(KeyMapper::PEV_VIEW2);
+        registerEvent(KeyMapper::PEV_VIEW3);
+        registerEvent(KeyMapper::PEV_VIEW4);
+        registerEvent(KeyMapper::PEV_VIEW5);
+
+        State::getCamera()->setParentMode(PNODE_MOVEMENT);
 
         this->debugNode(1);
