Index: branches/presentation/src/world_entities/projectiles/nadion_blast.cc
===================================================================
--- branches/presentation/src/world_entities/projectiles/nadion_blast.cc	(revision 10727)
+++ branches/presentation/src/world_entities/projectiles/nadion_blast.cc	(revision 10728)
@@ -213,6 +213,7 @@
   float matrix[4][4];
   glTranslatef (this->getAbsCoor ().x, this->getAbsCoor ().y, this->getAbsCoor ().z);
-  glRotatef(this->angle, 1.0f, 0.0f, 0.0f); //spinning missile
-//   glRotatef(this->angle, this->flightDirection.x, this->flightDirection.y, this->flightDirection.z);
+//   glRotatef(this->angle, 1.0f, 0.0f, 0.0f); //spinning missile 
+// HACK, need to be removed, once the AbsDir is correct, replace with the one above
+  glRotatef(this->angle, this->flightDirection.x, this->flightDirection.y, this->flightDirection.z); 
   this->getAbsDir().matrix (matrix);
   glMultMatrixf((float*)matrix);
Index: branches/presentation/src/world_entities/space_ships/space_ship.cc
===================================================================
--- branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10727)
+++ branches/presentation/src/world_entities/space_ships/space_ship.cc	(revision 10728)
@@ -453,23 +453,23 @@
 {
 
-//   if( !this->bInit)
-//   {
-//     // now get slots from the mount points
-//     std::map<int, MountPoint*>::iterator it = this->mountPointMap.begin();
-//     for( ;it != this->mountPointMap.end(); it++)
-//     {
-//       WeaponSlot* ws = dynamic_cast<WeaponSlot*>((*it).second->getMount());
-//       if( ws != NULL && ws->isA(WeaponSlot::staticClassID()))
-//       {
-//         int slot = ws->getWeaponSlot();
-// //         int side = ws->getWeaponSide(); //FIXME / REMOVE: is not used// HACK needed for some weapons (left/right)
-//         this->getWeaponManager().setSlotPosition(slot, (*it).second->getCenter());
-//         this->getWeaponManager().setSlotDirection(slot, ws->getRelDir());
-// //         PRINTF(0)("setting slot %i\n", slot);
-// //         (*it).second->getCenter().debug();
-//       }
-//     }
-//   this->bInit = true;
-//   }
+  if( !this->bInit)
+  {
+    // now get slots from the mount points
+    std::map<int, MountPoint*>::iterator it = this->mountPointMap.begin();
+    for( ;it != this->mountPointMap.end(); it++)
+    {
+      WeaponSlot* ws = dynamic_cast<WeaponSlot*>((*it).second->getMount());
+      if( ws != NULL && ws->isA(WeaponSlot::staticClassID()))
+      {
+        int slot = ws->getWeaponSlot();
+//         int side = ws->getWeaponSide(); //FIXME / REMOVE: is not used// HACK needed for some weapons (left/right)
+        this->getWeaponManager().setSlotPosition(slot, (*it).second->getCenter());
+        this->getWeaponManager().setSlotDirection(slot, ws->getRelDir());
+//         PRINTF(0)("setting slot %i\n", slot);
+//         (*it).second->getCenter().debug();
+      }
+    }
+  this->bInit = true;
+  }
 
   // Playable::tick(time);
Index: branches/presentation/src/world_entities/weapons/disruptor.cc
===================================================================
--- branches/presentation/src/world_entities/weapons/disruptor.cc	(revision 10727)
+++ branches/presentation/src/world_entities/weapons/disruptor.cc	(revision 10728)
@@ -125,7 +125,7 @@
 
 
+  this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.0333, ANIM_LINEAR, ANIM_NULL);
+  this->shootAnim[0][0]->addKeyFrame(Vector(-0.5, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.2, ANIM_LINEAR, ANIM_NULL);
   this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
-  this->shootAnim[0][0]->addKeyFrame(Vector(-0.5, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.2, ANIM_LINEAR, ANIM_NULL);
-//   this->shootAnim[0][0]->addKeyFrame(Vector(0.0, 0.0, 0.0) * this->getScaling(), Quaternion(), 0.1, ANIM_LINEAR, ANIM_NULL);
 
   Animation3D* animation2 = this->getAnimation(WS_ACTIVATING, this);
Index: branches/presentation/src/world_entities/weapons/nadion_laser.cc
===================================================================
--- branches/presentation/src/world_entities/weapons/nadion_laser.cc	(revision 10727)
+++ branches/presentation/src/world_entities/weapons/nadion_laser.cc	(revision 10728)
@@ -148,4 +148,6 @@
   pj->setAbsCoor(this->getEmissionPoint());
 //   pj->setAbsDir(Quaternion(this->getDefaultTarget()->getAbsCoor() - this->getAbsCoor(), Vector(0,0,0)));
+//   pj->setAbsDir(Quaternion(tmp.getNormalized(), this->getParent()->getAbsDir().apply(Vector(0,1,0))));
+
   pj->setAbsDir(this->getAbsDir());
   pj->activate();
Index: branches/presentation/src/world_entities/weapons/rf_cannon.cc
===================================================================
--- branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10727)
+++ branches/presentation/src/world_entities/weapons/rf_cannon.cc	(revision 10728)
@@ -142,4 +142,5 @@
   pj->setAbsCoor(this->emissionPoint[this->activeBarrel]->getAbsCoor());
 //   pj->setAbsDir(this->getAbsDir());
+//   pj->setAbsDir(Quaternion(tmp.getNormalized(), this->getParent()->getAbsDir().apply(Vector(0,1,0))));
 
   pj->activate();
Index: branches/presentation/src/world_entities/weapons/weapon_manager.h
===================================================================
--- branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10727)
+++ branches/presentation/src/world_entities/weapons/weapon_manager.h	(revision 10728)
@@ -55,7 +55,5 @@
     void hideCrosshair();
     void setRotationSpeed(float speed);
-//     Crosshair* getCrosshair() {return this->crosshair; };
 
-//     virtual void process(const Event &event);
 
     void setSlotCount(unsigned int slotCount);
@@ -63,5 +61,4 @@
     // setting up the WeaponManager with the following functions
     void setSlotPosition(int slot, const Vector& position, PNode* parent = NULL);
-//     inline void setSlotPosition(float slot, float x, float y,float z) {setSlotPosition((int)slot, Vector(x,y,z));};
     void setSlotDirection(int slot, const Quaternion& rotation);
     /** @param slot the slot to get the relative position from @returns the relative position of the Carrier to the Slot */
@@ -104,7 +101,5 @@
 
     void fire();
-    //! @TODO: implement this function (maybe also in Weapon itself)
     void releaseFire();
-    //inline void setFire() { this->bFire = true; };
 
     void tick(float dt);
@@ -113,5 +108,5 @@
     void debug() const;
 
- // private:
+
     int getNextFreeSlot(int configID, long capability = WTYPE_ALL);
     CountPointer<AmmoContainer>& getAmmoContainer(const ClassID& projectileType);
