Index: code/trunk/src/orxonox/weaponsystem/Munition.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Munition.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/Munition.cc	(revision 5929)
@@ -461,8 +461,8 @@
         if (bUseReloadTime && (munition->reloadTime_ > 0 || munition->bStackMunition_))
         {
-            ExecutorMember<Magazine>* executor = createExecutor(createFunctor(&Magazine::loaded));
+            Executor* executor = createExecutor(createFunctor(&Magazine::loaded, this));
             executor->setDefaultValues(munition);
 
-            this->loadTimer_.setTimer(munition->reloadTime_, false, this, executor);
+            this->loadTimer_.setTimer(munition->reloadTime_, false, executor);
         }
         else
Index: code/trunk/src/orxonox/weaponsystem/Munition.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Munition.h	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/Munition.h	(revision 5929)
@@ -47,5 +47,5 @@
 
                 unsigned int munition_;
-                Timer<Magazine> loadTimer_;
+                Timer loadTimer_;
                 bool bLoaded_;
 
Index: code/trunk/src/orxonox/weaponsystem/Weapon.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Weapon.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/Weapon.cc	(revision 5929)
@@ -50,5 +50,5 @@
         this->reloadingWeaponmode_ = WeaponSystem::WEAPON_MODE_UNASSIGNED;
 
-        this->reloadTimer_.setTimer(0.0f, false, this, createExecutor(createFunctor(&Weapon::reloaded)));
+        this->reloadTimer_.setTimer(0.0f, false, createExecutor(createFunctor(&Weapon::reloaded, this)));
         this->reloadTimer_.stopTimer();
     }
@@ -62,5 +62,5 @@
 
             for (std::multimap<unsigned int, WeaponMode*>::iterator it = this->weaponmodes_.begin(); it != this->weaponmodes_.end(); ++it)
-                delete it->second;
+                it->second->destroy();
         }
     }
Index: code/trunk/src/orxonox/weaponsystem/Weapon.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/Weapon.h	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/Weapon.h	(revision 5929)
@@ -71,5 +71,5 @@
             std::multimap<unsigned int, WeaponMode*> weaponmodes_;
 
-            Timer<Weapon> reloadTimer_;
+            Timer reloadTimer_;
             bool bReloading_;
             unsigned int reloadingWeaponmode_;
Index: code/trunk/src/orxonox/weaponsystem/WeaponMode.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/WeaponMode.cc	(revision 5929)
@@ -57,5 +57,5 @@
         this->bParallelReload_ = true;
 
-        this->reloadTimer_.setTimer(0.0f, false, this, createExecutor(createFunctor(&WeaponMode::reloaded)));
+        this->reloadTimer_.setTimer(0.0f, false, createExecutor(createFunctor(&WeaponMode::reloaded, this)));
         this->reloadTimer_.stopTimer();
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponMode.h
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponMode.h	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/WeaponMode.h	(revision 5929)
@@ -36,5 +36,5 @@
 #include "util/Math.h"
 #include "core/BaseObject.h"
-#include "core/Identifier.h"
+#include "core/SubclassIdentifier.h"
 #include "tools/Timer.h"
 
@@ -150,5 +150,5 @@
             std::string munitionname_;
 
-            Timer<WeaponMode> reloadTimer_;
+            Timer reloadTimer_;
             bool bReloading_;
     };
Index: code/trunk/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponPack.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/WeaponPack.cc	(revision 5929)
@@ -54,8 +54,8 @@
 
             while (!this->weapons_.empty())
-                delete (*this->weapons_.begin());
+                (*this->weapons_.begin())->destroy();
 
             for (std::set<DefaultWeaponmodeLink*>::iterator it = this->links_.begin(); it != this->links_.end(); )
-                delete (*(it++));
+                (*(it++))->destroy();
         }
     }
Index: code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSlot.cc	(revision 5929)
@@ -46,5 +46,5 @@
         this->weapon_ = 0;
 
-        this->setObjectMode(0x0);
+        this->setSyncMode(0x0);
     }
 
Index: code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 5781)
+++ code/trunk/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 5929)
@@ -62,14 +62,14 @@
 
             while (!this->weaponSets_.empty())
-                delete (this->weaponSets_.begin()->second);
+                this->weaponSets_.begin()->second->destroy();
 
             while (!this->weaponPacks_.empty())
-                delete (*this->weaponPacks_.begin());
+                (*this->weaponPacks_.begin())->destroy();
 
             while (!this->weaponSlots_.empty())
-                delete (*this->weaponSlots_.begin());
+                (*this->weaponSlots_.begin())->destroy();
 
             while (!this->munitions_.empty())
-                { delete (this->munitions_.begin()->second); this->munitions_.erase(this->munitions_.begin()); }
+                { this->munitions_.begin()->second->destroy(); this->munitions_.erase(this->munitions_.begin()); }
         }
     }
