Index: code/branches/turretFS14/data/levels/templates/spaceshipTurretTest.oxt
===================================================================
--- code/branches/turretFS14/data/levels/templates/spaceshipTurretTest.oxt	(revision 10020)
+++ code/branches/turretFS14/data/levels/templates/spaceshipTurretTest.oxt	(revision 10021)
@@ -1,41 +1,4 @@
 <Template name=spaceshipturrettest>
-  <SpaceShip
-   hudtemplate            = spaceshiphud
-   camerapositiontemplate = spaceshipturretcameras
-   spawnparticlesource    = "Orxonox/fairytwirl"
-   spawnparticleduration  = 3
-   explosionchunks        = 6
-
-   health            = 100
-   maxhealth         = 200
-   initialhealth     = 100
-
-   shieldhealth        = 30
-   initialshieldhealth = 30
-   maxshieldhealth     = 50
-   shieldabsorption    = 0.8
-   reloadrate          = 1
-   reloadwaittime      = 1
-
-   primaryThrust     = 100
-   auxilaryThrust    = 30
-   rotationThrust    = 50
-
-   lift = 1;
-   stallSpeed = 220;
-
-   boostPower            = 15
-   boostPowerRate        = 1
-   boostRate             = 5
-   boostCooldownDuration = 10
-
-   shakeFrequency = 15
-   shakeAmplitude = 9
-
-   collisionType     = "dynamic"
-   mass              = 100
-   linearDamping     = 0.7
-   angularDamping    = 0.9999999
-  >
+  <Turret position="0,0,0" collisionType="dynamic" angularDamping=0.999999 mass=100>
     <attached>
         <Model position="0,0,0" pitch="90" roll="0" mesh="turretHead.mesh" scale3D="10,10,10"/>
@@ -44,8 +7,8 @@
         <SphereCollisionShape radius="10"   position = "0,0,0"/>
     </collisionShapes>
+  </Turret>
 <?lua
   include("../includes/weaponSettingsTurretTest.oxi")
 ?>
-  </SpaceShip>
 </Template>
 
Index: code/branches/turretFS14/src/modules/objects/Turret.cc
===================================================================
--- code/branches/turretFS14/src/modules/objects/Turret.cc	(revision 10020)
+++ code/branches/turretFS14/src/modules/objects/Turret.cc	(revision 10021)
@@ -29,7 +29,6 @@
 #include "Turret.h"
 #include "core/CoreIncludes.h"
-#include "OgreQuaternion.h"
 #include "core/XMLPort.h"
-#include "controllers/WaypointPatrolController.h"
+#include "BulletDynamics/Dynamics/btRigidBody.h"
 
 namespace orxonox
@@ -42,5 +41,5 @@
      * @brief Constructor
      */
-    Turret::Turret(Context* context) : SpaceShip(context)
+    Turret::Turret(Context* context) : Pawn(context)
     {
         RegisterObject(Turret);
@@ -49,4 +48,7 @@
         this->maxYaw_ = 0;
         this->gotOrient_ = false;
+        this->rotationThrust_ = 50;
+
+        this->localAngularAcceleration_.setValue(0, 0, 0);
     }
 
@@ -68,6 +70,6 @@
         if (this->maxPitch_ >= 180) //no need to check, if the limit too big
         {
-           SpaceShip::rotatePitch(value);
-           return;
+            this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x*0.8f);
+            return;
         }
 
@@ -92,5 +94,5 @@
         if ((val >= lowerBound || value.x > 0) && (val <= upperBound || value.x < 0)) 
         {
-            SpaceShip::rotatePitch(value);
+            this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x*0.8f);
         }
         return;
@@ -105,6 +107,6 @@
         if (this->maxPitch_ >= 180) //no need to check, if the limit too big
         {
-           SpaceShip::rotateYaw(value);
-           return;
+            this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() + value.x*0.8f);
+            return;
         }
 
@@ -129,5 +131,5 @@
         if ((val >= lowerBound || value.x > 0) && (val <= upperBound || value.x < 0)) 
         {
-            SpaceShip::rotateYaw(value);
+           this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() + value.x*0.8f);
         }
         return;
@@ -148,4 +150,6 @@
     void Turret::tick(float dt)
     {
+        SUPER(Turret, tick, dt);
+
         if(!gotOrient_)
         {
@@ -155,5 +159,8 @@
         Quaternion drot = startOrientInv_ * this->getOrientation();
         orxout() << "Pitch: " << drot.getPitch(false).valueDegrees() << "\tYaw: " << drot.getYaw(false).valueDegrees() << "\tRoll: " << drot.getRoll(false).valueDegrees() << endl;
-        SUPER(Turret, tick, dt);
+        
+        this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
+        this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
+        this->localAngularAcceleration_.setValue(0, 0, 0);
     }
 
Index: code/branches/turretFS14/src/modules/objects/Turret.h
===================================================================
--- code/branches/turretFS14/src/modules/objects/Turret.h	(revision 10020)
+++ code/branches/turretFS14/src/modules/objects/Turret.h	(revision 10021)
@@ -40,9 +40,8 @@
 
 #include "worldentities/pawns/SpaceShip.h"
-#include "controllers/TurretController.h"
 
 namespace orxonox
 {
-    class _ObjectsExport Turret : public SpaceShip
+    class _ObjectsExport Turret : public Pawn
     {
         public:
@@ -74,4 +73,7 @@
             Ogre::Real maxYaw_;
             Quaternion startOrientInv_;
+            float rotationThrust_;
+
+            btVector3 localAngularAcceleration_;
 
             Ogre::Real boundBetween(float val, float lowerBound, float upperBound);
