Index: code/branches/particles2/data/levels/includes/weaponsettings3.oxi
===================================================================
--- code/branches/particles2/data/levels/includes/weaponsettings3.oxi	(revision 6075)
+++ code/branches/particles2/data/levels/includes/weaponsettings3.oxi	(revision 6076)
@@ -46,7 +46,7 @@
           <DefaultWeaponmodeLink firemode=1 weaponmode=0 />
         </links>
-        <Weapon>
-          <!-- EnergyDrink mode=0 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" / -->
-        </Weapon>
+        <!--Weapon>
+          <EnergyDrink mode=0 munitionpershot=0 delay=0  material="Flares/point_lensflare"muzzleoffset="2,-0.2,-1" />
+        </Weapon-->
       </WeaponPack>
     </weapons>
Index: code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.cc
===================================================================
--- code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.cc	(revision 6075)
+++ code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.cc	(revision 6076)
@@ -49,7 +49,8 @@
     WeaponPack::~WeaponPack()
     {
-        if (this->isInitialized() && this->weaponSystem_)
+        if (this->isInitialized())
         {
-            this->weaponSystem_->removeWeaponPack(this);
+            if( this->weaponSystem_ )
+                this->weaponSystem_->removeWeaponPack(this);
 
             while (!this->weapons_.empty())
@@ -71,5 +72,5 @@
     void WeaponPack::fire(unsigned int weaponmode)
     {
-        for (std::set<Weapon *>::iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
+        for (std::vector<Weapon *>::iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
             (*it)->fire(weaponmode);
     }
@@ -77,5 +78,5 @@
     void WeaponPack::reload()
     {
-        for (std::set<Weapon *>::iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
+        for (std::vector<Weapon *>::iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
             (*it)->reload();
     }
@@ -86,5 +87,5 @@
             return;
 
-        this->weapons_.insert(weapon);
+        this->weapons_.push_back(weapon);
         weapon->setWeaponPack(this);
     }
@@ -95,5 +96,6 @@
             return;
 
-        this->weapons_.erase(weapon);
+        assert( std::find(this->weapons_.begin(), this->weapons_.end(), weapon)!=this->weapons_.end() );
+        this->weapons_.erase( std::find(this->weapons_.begin(), this->weapons_.end(), weapon) );
         weapon->setWeaponPack(0);
     }
@@ -103,5 +105,5 @@
         unsigned int i = 0;
 
-        for (std::set<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
+        for (std::vector<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
         {
             if (i == index)
@@ -142,5 +144,5 @@
     void WeaponPack::notifyWeapons()
     {
-        for (std::set<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
+        for (std::vector<Weapon *>::const_iterator it = this->weapons_.begin(); it != this->weapons_.end(); ++it)
             (*it)->setWeaponPack(this);
     }
Index: code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.h
===================================================================
--- code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.h	(revision 6075)
+++ code/branches/particles2/src/orxonox/weaponsystem/WeaponPack.h	(revision 6076)
@@ -69,5 +69,5 @@
             void notifyWeapons();
 
-            std::set<Weapon *> weapons_;
+            std::vector<Weapon *> weapons_;
             std::set<DefaultWeaponmodeLink *> links_;
             WeaponSystem * weaponSystem_;
Index: code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.cc
===================================================================
--- code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 6075)
+++ code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.cc	(revision 6076)
@@ -202,5 +202,5 @@
         }
 
-        this->weaponPacks_.insert(wPack);
+        this->weaponPacks_.push_back(wPack);
         wPack->setWeaponSystem(this);
 
@@ -221,5 +221,6 @@
 
         // Remove the WeaponPack from the WeaponSystem
-        this->weaponPacks_.erase(wPack);
+        assert( std::find(this->weaponPacks_.begin(),this->weaponPacks_.end(),wPack)!=this->weaponPacks_.end() );
+        this->weaponPacks_.erase( std::find(this->weaponPacks_.begin(),this->weaponPacks_.end(),wPack) );
     }
 
@@ -227,5 +228,5 @@
     {
         unsigned int i = 0;
-        for (std::set<WeaponPack*>::const_iterator it = this->weaponPacks_.begin(); it != this->weaponPacks_.end(); ++it)
+        for (std::vector<WeaponPack*>::const_iterator it = this->weaponPacks_.begin(); it != this->weaponPacks_.end(); ++it)
         {
             ++i;
@@ -258,5 +259,5 @@
 
         // Check if the WeaponPack belongs to this WeaponSystem
-        std::set<WeaponPack *>::iterator it1 = this->weaponPacks_.find(wPack);
+        std::vector<WeaponPack *>::iterator it1 = std::find( this->weaponPacks_.begin(), this->weaponPacks_.end(), wPack );
         if (it1 == this->weaponPacks_.end())
             return;
Index: code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.h
===================================================================
--- code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.h	(revision 6075)
+++ code/branches/particles2/src/orxonox/weaponsystem/WeaponSystem.h	(revision 6076)
@@ -92,5 +92,5 @@
             std::map<unsigned int, WeaponSet *> weaponSets_;
             std::vector<WeaponSlot *> weaponSlots_;
-            std::set<WeaponPack *> weaponPacks_;
+            std::vector<WeaponPack *> weaponPacks_;
             std::map<Identifier *, Munition *> munitions_;
             Pawn * pawn_;
