Index: /trunk/src/world_entities/playable.cc
===================================================================
--- /trunk/src/world_entities/playable.cc	(revision 6443)
+++ /trunk/src/world_entities/playable.cc	(revision 6444)
@@ -52,5 +52,5 @@
 
   if (this->currentPlayer != NULL)
-      this->currentPlayer->weaponConfigChanged();
+    this->currentPlayer->weaponConfigChanged();
 }
 
@@ -59,4 +59,18 @@
   this->weaponMan->removeWeapon(weapon);
 
+  if (this->currentPlayer != NULL)
+    this->currentPlayer->weaponConfigChanged();
+}
+
+void Playable::nextWeaponConfig()
+{
+  this->weaponMan->nextWeaponConfig();
+  if (this->currentPlayer != NULL)
+    this->currentPlayer->weaponConfigChanged();
+}
+
+void Playable::previousWeaponConfig()
+{
+  this->weaponMan->previousWeaponConfig();
   if (this->currentPlayer != NULL)
     this->currentPlayer->weaponConfigChanged();
@@ -154,6 +168,6 @@
 void  Playable::attachCamera()
 {
-       State::getCamera()->setParentSoft(this);
-       State::getCameraTarget()->setParentSoft(this);
+  State::getCamera()->setParentSoft(this);
+  State::getCameraTarget()->setParentSoft(this);
 
 }
@@ -162,5 +176,3 @@
 void  Playable::detachCamera()
 {
-
-
 }
Index: /trunk/src/world_entities/playable.h
===================================================================
--- /trunk/src/world_entities/playable.h	(revision 6443)
+++ /trunk/src/world_entities/playable.h	(revision 6444)
@@ -11,7 +11,8 @@
 #include <list>
 
+#include "world_entities/weapons/weapon_manager.h"
 
 class Weapon;
-class WeaponManager;
+
 class Player;
 
@@ -31,4 +32,6 @@
     void addWeapon(Weapon* weapon, int configID = -1, int slotID = -1);
     void removeWeapon(Weapon* weapon);
+    void nextWeaponConfig();
+    void previousWeaponConfig();
 
     inline WeaponManager* getWeaponManager() const { return this->weaponMan; };
Index: /trunk/src/world_entities/space_ships/space_ship.cc
===================================================================
--- /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6443)
+++ /trunk/src/world_entities/space_ships/space_ship.cc	(revision 6444)
@@ -434,8 +434,8 @@
   else if( event.type == KeyMapper::PEV_NEXT_WEAPON && event.bPressed)
   {
-    this->getWeaponManager()->nextWeaponConfig();//if( !event.bPressed) this->bWeaponChange = !this->bWeaponChange;
+    this->nextWeaponConfig();//if( !event.bPressed) this->bWeaponChange = !this->bWeaponChange;
   }
   else if ( event.type == KeyMapper::PEV_PREVIOUS_WEAPON && event.bPressed)
-    this->getWeaponManager()->previousWeaponConfig();
+    this->previousWeaponConfig();
   else if( event.type == SDLK_w)
     this->bUp = event.bPressed; //this->shiftCoor(0,.1,0);
Index: /trunk/src/world_entities/weapons/weapon.cc
===================================================================
--- /trunk/src/world_entities/weapons/weapon.cc	(revision 6443)
+++ /trunk/src/world_entities/weapons/weapon.cc	(revision 6444)
@@ -421,4 +421,5 @@
     if (likely(this->soundBuffers[WA_ACTIVATE] != NULL))
       this->soundSource->play(this->soundBuffers[WA_ACTIVATE]);
+    this->updateWidgets();
     // activate
     PRINTF(4)("Activating the Weapon %s\n", this->getName());
@@ -482,4 +483,5 @@
     if (this->soundBuffers[WA_SHOOT] != NULL)
       this->soundSource->play(this->soundBuffers[WA_SHOOT]);
+    this->updateWidgets();
     // fire
     this->energyLoaded -= this->minCharge;
@@ -526,4 +528,6 @@
     this->energy -= chargeSize;
   }
+
+  this->updateWidgets();
   this->reload();
   this->enterState(WS_RELOADING);
Index: /trunk/src/world_entities/weapons/weapon_manager.h
===================================================================
--- /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6443)
+++ /trunk/src/world_entities/weapons/weapon_manager.h	(revision 6444)
@@ -9,4 +9,7 @@
  * @TODO 1. WeaponManager should also handle a List of availiableWeapons.
  */
+
+#ifndef _WEAPON_MANAGER_H
+#define _WEAPON_MANAGER_H
 
 #include "base_object.h"
@@ -70,5 +73,5 @@
     void addWeapon(Weapon* weapon, int configID = -1, int slotID = -1);
     void removeWeapon(Weapon* weapon, int configID = -1);
-    Weapon* getWeapon(int slotID) const { return (slotID >= 0 && slotID < this->slotCount)? this->currentSlotConfig[slotID].currentWeapon: NULL; };
+    Weapon* getWeapon(int slotID) const { return (slotID >= 0 && slotID < this->slotCount)? this->currentSlotConfig[slotID].nextWeapon: NULL; };
 
     // FIXME ::
@@ -109,2 +112,5 @@
     tAnimation<Crosshair>*  crossHairSizeAnim;                        //!< An animation for the crosshair (scaling)
 };
+
+
+#endif /* _WEAPON_MANAGER_H */
