Index: code/branches/fabienHS15/src/modules/pickup/PickupRepresentation.cc
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/PickupRepresentation.cc	(revision 10688)
+++ code/branches/fabienHS15/src/modules/pickup/PickupRepresentation.cc	(revision 10692)
@@ -187,5 +187,5 @@
         Billboard* icon = new Billboard(spawner->getContext());
         icon->setColour(ColourValue(0.89f, 0.79f, 0.08f));
-        icon->setMaterial("asterisk");
+        icon->setMaterial("Unknown");
         icon->setScale(0.5);
         sphere->attach(icon);
Index: code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt	(revision 10688)
+++ code/branches/fabienHS15/src/modules/pickup/items/CMakeLists.txt	(revision 10692)
@@ -8,3 +8,4 @@
   ShrinkPickup.cc
   DamageBoostPickup.cc
+  MunitionPickup.cc
 )
Index: code/branches/fabienHS15/src/modules/pickup/items/DronePickup.h
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/DronePickup.h	(revision 10688)
+++ code/branches/fabienHS15/src/modules/pickup/items/DronePickup.h	(revision 10692)
@@ -43,5 +43,6 @@
 #include "tools/interfaces/Tickable.h"
 
-namespace orxonox {
+namespace orxonox
+{
 
     /**
@@ -80,7 +81,4 @@
             std::string droneTemplate_; //!< The name of the template, based upon which the Drone is created.
             Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
-
-
-
     };
 }
Index: code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc	(revision 10692)
+++ code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.cc	(revision 10692)
@@ -0,0 +1,165 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MunitionPickup.cc
+    @brief Implementation of the MunitionPickup class.
+*/
+
+#include "MunitionPickup.h"
+
+#include <sstream>
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+
+#include "worldentities/pawns/SpaceShip.h"
+
+namespace orxonox
+{
+    RegisterClass(MunitionPickup);
+
+    /**
+    @brief
+        Constructor. Registers the object and initializes the member variables.
+    */
+    MunitionPickup::MunitionPickup(Context* context) : Pickup(context)
+    {
+        RegisterObject(MunitionPickup);
+
+        this->initialize();
+    }
+
+    /**
+    @brief
+        Destructor.
+    */
+    MunitionPickup::~MunitionPickup()
+    {
+    }
+
+    /**
+    @brief
+        Initializes the member variables.
+    */
+    void MunitionPickup::initialize(void)
+    {
+        //Defines who is allowed to pick up the pickup.
+        this->addTarget(ClassIdentifier<Pawn>::getIdentifier());
+        munitionAmount_ = 1;
+        setMunitionName("LaserMunition");
+    }
+
+    /**
+    @brief
+        Method for creating a MunitionPickup object through XML.
+    */
+    void MunitionPickup::XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode)
+    {
+        SUPER(MunitionPickup, XMLPort, xmlelement, mode);
+
+        XMLPortParam(MunitionPickup, "amount", setMunitionAmount, getMunitionAmount, xmlelement, mode);
+        XMLPortParam(MunitionPickup, "munitiontype", setMunitionName, getMunitionName, xmlelement, mode);
+    }
+
+    /**
+    @brief
+        Is called when the pickup has transisted from used to unused or the other way around.
+    */
+    void MunitionPickup::changedUsed(void)
+    {
+        SUPER(MunitionPickup, changedUsed);
+
+        Pawn* pawn = this->carrierToPawnHelper();
+
+        if(pawn == NULL) // If the PickupCarrier is no Pawn, then this pickup is useless and therefore is destroyed.
+            this->Pickupable::destroy();
+
+
+        // If the pickup has transited to used.
+        if(this->isUsed())
+        {
+            //Get pointer to the appropriate munition
+            Munition* munition = pawn->getMunition(&munitionType_);
+            if (munition)
+            {
+                // Add munition
+                munition->addMunition(munitionAmount_);
+                // This will destroy the pickp
+                this->setUsed(false);
+            }            
+        }
+        else
+        {
+            this->Pickupable::destroy();
+        }        
+    }
+
+    /**
+    @brief
+        Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
+    @return
+        A pointer to the Pawn, or NULL if the conversion failed.
+    */
+    Pawn* MunitionPickup::carrierToPawnHelper(void)
+    {
+        PickupCarrier* carrier = this->getCarrier();
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
+
+        if(pawn == NULL)
+        {
+            orxout(internal_error, context::pickups) << "Invalid PickupCarrier in MunitionPickup." << endl;
+        }
+        return pawn;
+    }
+
+    void MunitionPickup::setMunitionName(const std::string& munitionname)
+    {
+        Identifier* identifier = ClassByString(munitionname);
+        if (identifier)
+        {
+            this->munitionType_ = identifier;
+        }
+        else
+        {
+            orxout(internal_warning) << "No munition class defined in MunitionPickup." << endl;
+        }
+    }
+
+    void MunitionPickup::setMunitionAmount(int munitionAmount)
+    {
+        if (munitionAmount > 0)
+        {
+            munitionAmount_ = munitionAmount;
+        }
+        else
+        {
+            munitionAmount = 0;
+        }
+    }
+}
+
Index: code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h
===================================================================
--- code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h	(revision 10692)
+++ code/branches/fabienHS15/src/modules/pickup/items/MunitionPickup.h	(revision 10692)
@@ -0,0 +1,79 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabien Vultier
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file MunitionPickup.h
+    @brief Declaration of the MunitionPickup class.
+    @ingroup PickupItems
+*/
+
+#ifndef _MunitionPickup_H__
+#define _MunitionPickup_H__
+
+#include "pickup/PickupPrereqs.h"
+
+#include <string>
+
+#include "pickup/Pickup.h"
+#include "core/class/SubclassIdentifier.h"
+#include "weaponsystem/Munition.h"
+
+namespace orxonox
+{
+
+    class _PickupExport MunitionPickup : public Pickup
+    {
+        public:
+
+            MunitionPickup(Context* context); //!< Constructor.
+            virtual ~MunitionPickup(); //!< Destructor.
+
+            virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a MunitionPickup object through XML.
+
+            virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
+
+        protected:
+            void setMunitionName(const std::string& munitionname);
+            inline const std::string& getMunitionName() const
+                { return this->munitionname_; }
+            void setMunitionAmount(int munitionAmount);
+            inline int getMunitionAmount() const
+                { return this->munitionAmount_; }
+
+        private:            
+            void initialize(void); //!< Initializes the member variables.
+            Pawn* carrierToPawnHelper(void); //!< Helper to transform the PickupCarrier to a Pawn, and throw an error message if the conversion fails.
+
+            SubclassIdentifier<Munition> munitionType_; //!< Indentifier of the munition type.
+            std::string munitionname_; //!< String containing the class name of the munition type (e.g. "LaserMunition")
+            int munitionAmount_; //!< The amount of munition added if the pickup is used
+
+    };
+}
+
+#endif // _MunitionPickup_H__
