Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.cc	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.cc	(revision 2354)
@@ -111,11 +111,11 @@
 this->munitionType_ = munitionType; }
 
-    std::string Weapon::getMunitionType()
+    const std::string Weapon::getMunitionType()
     {   return this->munitionType_;  }
 
     Munition * Weapon::getAttachedMunition(std::string munitionType)
     {   
-COUT(0) << "Weapon::getAttachedMunition, parentWeaponSystem_="<< this->parentWeaponSystem_ << std::endl;   
-        this->parentWeaponSystem_->getMunitionType(munitionType);
+COUT(0) << "Weapon::getAttachedMunition, parentWeaponSystem_="<< this->parentWeaponSystem_ << std::endl;
+        this->munition_ = this->parentWeaponSystem_->getMunitionType(munitionType);
 COUT(0) << "Weapon::getAttachedMunition, munition_="<< this->munition_ << std::endl;
 return this->munition_; }
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/Weapon.h	(revision 2354)
@@ -71,5 +71,5 @@
 
             void setMunitionType(std::string munitionType);
-            std::string getMunitionType();
+            const std::string getMunitionType();
 
             inline void setParentWeaponSlot(WeaponSlot *parentWeaponSlot)
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.cc	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.cc	(revision 2354)
@@ -59,9 +59,4 @@
     }
 
-    void WeaponPack::attachWeapon(Weapon *weapon)
-    {
-        this->weapons_.push_back(weapon);
-    }
-
     void WeaponPack::fire()
     {
@@ -86,4 +81,5 @@
     void WeaponPack::setFireMode(unsigned int firemode)
     {
+COUT(0) << "WeaponPack::setFireMode " << std::endl;
         this->firemode_ = firemode;
     }
@@ -97,9 +93,9 @@
     {
         weapon->setParentWeaponSystem(this->parentWeaponSystem_);
-COUT(0) << "WeaponPack::addWeapon " << weapon->getMunitionType() << std::endl;
+COUT(0) << "WeaponPack::addWeapon " << weapon << "   munition " << weapon->getMunitionType() << std::endl;
         this->weapons_.push_back(weapon);
     }
 
-    Weapon * WeaponPack::getWeapon(unsigned int index)
+    const Weapon * WeaponPack::getWeapon(unsigned int index)
     {
         return weapons_[index];
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.h	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/WeaponPack.h	(revision 2354)
@@ -52,5 +52,4 @@
             Weapon * getWeaponPointer(unsigned int n);
             int getSize();
-            void attachWeapon(Weapon *weapon);
 
             void setFireMode(unsigned int firemode);
@@ -58,5 +57,5 @@
 
             void addWeapon(Weapon * weapon);
-            Weapon * getWeapon(unsigned int index);
+            const Weapon * getWeapon(unsigned int index);
 
             void setWeaponSystemToAllWeapons(WeaponSystem * weaponSystem);
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.cc	(revision 2354)
@@ -83,8 +83,15 @@
     void LaserGun::XMLPort(Element& xmlelement, XMLPort::Mode mode)
     {
-
+        SUPER(LaserGun, XMLPort, xmlelement, mode);
+        XMLPortParam(LaserGun, "munitionType", setMunitionType, getMunitionType, xmlelement, mode);
     }
 
+    void LaserGun::setMunitionType(std::string munitionType)
+    {   
+COUT(0) << "LaserGun::setMunitionType (XMLPort) "<< munitionType << std::endl;
+        this->munitionType_ = munitionType; }
 
+    const std::string LaserGun::getMunitionType()
+    {   return this->munitionType_;  }
 
 }
Index: code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h
===================================================================
--- code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2347)
+++ code/branches/weapon2/src/orxonox/objects/weaponSystem/weapons/LaserGun.h	(revision 2354)
@@ -52,4 +52,7 @@
             void fire();
 
+            void setMunitionType(std::string munitionType);
+            const std::string getMunitionType();
+
         private:
             float speed_;
