Index: code/branches/presentation2012merge/src/libraries/core/Super.h
===================================================================
--- code/branches/presentation2012merge/src/libraries/core/Super.h	(revision 9319)
+++ code/branches/presentation2012merge/src/libraries/core/Super.h	(revision 9320)
@@ -280,7 +280,4 @@
         SUPER_NOARGS(classname, functionname)
 
-    #define SUPER_clone(classname, functionname, ...) \
-        SUPER_ARGS(classname, functionname, __VA_ARGS__)
-
     #define SUPER_changedCarrier(classname, functionname, ...) \
         SUPER_NOARGS(classname, functionname)
@@ -566,13 +563,9 @@
         SUPER_FUNCTION_GLOBAL_DECLARATION_PART2;
 
-        SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(11, clone, true, OrxonoxClass*& item)
-            (item)
-        SUPER_FUNCTION_GLOBAL_DECLARATION_PART2;
-
-        SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(12, changedCarrier, false)
-            ()
-        SUPER_FUNCTION_GLOBAL_DECLARATION_PART2;
-
-        SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(13, changedPickedUp, false)
+        SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(11, changedCarrier, false)
+            ()
+        SUPER_FUNCTION_GLOBAL_DECLARATION_PART2;
+
+        SUPER_FUNCTION_GLOBAL_DECLARATION_PART1(12, changedPickedUp, false)
             ()
         SUPER_FUNCTION_GLOBAL_DECLARATION_PART2;
@@ -632,5 +625,4 @@
     SUPER_INTRUSIVE_DECLARATION(changedGametype);
     SUPER_INTRUSIVE_DECLARATION(changedUsed);
-    SUPER_INTRUSIVE_DECLARATION(clone);
     SUPER_INTRUSIVE_DECLARATION(changedCarrier);
     SUPER_INTRUSIVE_DECLARATION(changedPickedUp);
Index: code/branches/presentation2012merge/src/modules/pickup/Pickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	(revision 9320)
@@ -181,23 +181,4 @@
     /**
     @brief
-        Creates a duplicate of the OrxonoxClass.
-    @param item
-        A reference to the pointer of the item that we're duplicating.
-    */
-    void Pickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new Pickup(this);
-
-        SUPER(Pickup, clone, item);
-
-        Pickup* pickup = orxonox_cast<Pickup*>(item);
-        pickup->setRepresentationName(this->getRepresentationName());
-        pickup->setActivationType(this->getActivationType());
-        pickup->setDurationType(this->getDurationType());
-    }
-
-    /**
-    @brief
         Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
     @return
Index: code/branches/presentation2012merge/src/modules/pickup/Pickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/Pickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/Pickup.h	(revision 9320)
@@ -150,5 +150,4 @@
 
             virtual void changedPickedUp(void); //!< Should be called when the pickup has transited from picked up to dropped or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the OrxonoxClass.
 
         protected:
Index: code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	(revision 9320)
@@ -196,29 +196,4 @@
         if(!isOnePickupEnabledAndPickedUp && this->isPickedUp())
             this->Pickupable::destroy();
-    }
-
-    /**
-    @brief
-        Creates a duplicate of the input Pickupable.
-        This method needs to be implemented by any Class inheriting from Pickupable.
-    @param item
-        A reference to a pointer to the OrxonoxClass that is to be duplicated.
-    */
-    void PickupCollection::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new PickupCollection(this);
-
-        SUPER(PickupCollection, clone, item);
-
-        PickupCollection* pickup = orxonox_cast<PickupCollection*>(item);
-        pickup->setRepresentationName(this->getRepresentationName());
-        // Clone all Pickupables this PickupCollection consist of.
-        for(std::list<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); ++it)
-        {
-            Pickupable* newPickup = (*it)->clone();
-            CollectiblePickup* collectible = static_cast<CollectiblePickup*>(newPickup);
-            pickup->addPickupable(collectible);
-        }
     }
 
Index: code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollection.h	(revision 9320)
@@ -79,6 +79,4 @@
             virtual void changedPickedUp(void); //!< Is called when the pickup has transited from picked up to dropped or the other way around.
 
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input pickup.
-
             virtual bool isTarget(const PickupCarrier* carrier) const; //!< Get whether a given class, represented by the input Identifier, is a target of this PickupCollection.
 
Index: code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	(revision 9320)
@@ -169,22 +169,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void DamageBoostPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new DamageBoostPickup(this);
-
-        SUPER(DamageBoostPickup, clone, item);
-
-        DamageBoostPickup* pickup = orxonox_cast<DamageBoostPickup*>(item);
-        pickup->setDuration(this->getDuration());
-        pickup->setDamageMultiplier(this->getDamageMultiplier());
-    }
-
-    /**
-    @brief
         Sets the duration for which the DamageBoostPickup stays active.
     @param duration
Index: code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.h	(revision 9320)
@@ -55,5 +55,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	(revision 9320)
@@ -170,20 +170,3 @@
         return pawn;
     }
-
-    /**
-    @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void DronePickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new DronePickup(this);
-
-        SUPER(DronePickup, clone, item);
-
-        DronePickup* pickup = orxonox_cast<DronePickup*>(item);
-        pickup->setDroneTemplate(this->getDroneTemplate());
-    }
 }
Index: code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.h	(revision 9320)
@@ -70,5 +70,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             const std::string& getDroneTemplate() const; //!< Get the name of the droneTemplate.
Index: code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	(revision 9320)
@@ -248,23 +248,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void HealthPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new HealthPickup(this);
-
-        SUPER(HealthPickup, clone, item);
-
-        HealthPickup* pickup = orxonox_cast<HealthPickup*>(item);
-        pickup->setHealth(this->getHealth());
-        pickup->setHealthRate(this->getHealthRate());
-        pickup->setHealthType(this->getHealthType());
-    }
-
-    /**
-    @brief
         Get the health type of this pickup.
     @return
Index: code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.h	(revision 9320)
@@ -97,5 +97,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	(revision 9320)
@@ -132,21 +132,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void InvisiblePickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new InvisiblePickup(this);
-
-        SUPER(InvisiblePickup, clone, item);
-
-        InvisiblePickup* pickup = orxonox_cast<InvisiblePickup*>(item);
-        pickup->setDuration(this->getDuration());
-    }
-
-    /**
-    @brief
         Sets the invisibility.
     @param invisibility
Index: code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.h	(revision 9320)
@@ -75,5 +75,4 @@
             virtual void XMLPort(Element& xmlelement, orxonox::XMLPort::Mode mode); //!< Method for creating a HealthPickup object through XML.
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	(revision 9320)
@@ -147,21 +147,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void MetaPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new MetaPickup(this);
-
-        SUPER(MetaPickup, clone, item);
-
-        MetaPickup* pickup = orxonox_cast<MetaPickup*>(item);
-        pickup->setMetaType(this->getMetaType());
-    }
-
-    /**
-    @brief
         Get the meta type of this MetaPickup.
     @return
Index: code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.h	(revision 9320)
@@ -95,5 +95,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	(revision 9320)
@@ -159,23 +159,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void ShieldPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new ShieldPickup(this);
-
-        SUPER(ShieldPickup, clone, item);
-
-        ShieldPickup* pickup = orxonox_cast<ShieldPickup*>(item);
-        pickup->setDuration(this->getDuration());
-        pickup->setShieldAbsorption(this->getShieldAbsorption());
-        pickup->setShieldHealth(this->getShieldHealth());
-    }
-
-    /**
-    @brief
         Sets the duration.
     @param duration
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.h	(revision 9320)
@@ -82,5 +82,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	(revision 9320)
@@ -294,21 +294,3 @@
         return pawn;
     }
-
-    /**
-    @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void ShrinkPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new ShrinkPickup(this);
-
-        SUPER(ShrinkPickup, clone, item);
-        ShrinkPickup* pickup = orxonox_cast<ShrinkPickup*>(item);
-        pickup->setShrinkFactor(this->getShrinkFactor());
-        pickup->setDuration(this->getDuration());
-        pickup->setShrinkDuration(this->getShrinkDuration());
-    }
 }
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.h	(revision 9320)
@@ -80,5 +80,4 @@
             virtual void changedUsed(void); // Is called when the pickup has transited from used to unused or the other way around.
             virtual void changedPickedUp(void);
-            virtual void clone(OrxonoxClass*& item); // Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	(revision 9320)
@@ -160,23 +160,4 @@
     /**
     @brief
-        Creates a duplicate of the input OrxonoxClass.
-    @param item
-        A pointer to the Orxonox class.
-    */
-    void SpeedPickup::clone(OrxonoxClass*& item)
-    {
-        if(item == NULL)
-            item = new SpeedPickup(this);
-
-        SUPER(SpeedPickup, clone, item);
-
-        SpeedPickup* pickup = orxonox_cast<SpeedPickup*>(item);
-        pickup->setDuration(this->getDuration());
-        pickup->setSpeedAdd(this->getSpeedAdd());
-        pickup->setSpeedMultiply(this->getSpeedMultiply());
-    }
-
-    /**
-    @brief
         Sets the duration for which the SpeedPickup stays active.
     @param duration
Index: code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h	(revision 9319)
+++ code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.h	(revision 9320)
@@ -81,5 +81,4 @@
 
             virtual void changedUsed(void); //!< Is called when the pickup has transited from used to unused or the other way around.
-            virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
 
             /**
Index: code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	(revision 9319)
+++ code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	(revision 9320)
@@ -322,21 +322,4 @@
     /**
     @brief
-        Creates a duplicate of the Pickupable.
-    @return
-        Returns the clone of this pickup as a pointer to a Pickupable.
-    */
-    Pickupable* Pickupable::clone(void)
-    {
-        OrxonoxClass* item = NULL;
-        this->clone(item);
-
-        Pickupable* pickup = orxonox_cast<Pickupable*>(item);
-
-        orxout(verbose, context::pickups) << "Pickupable (&" << this << ") cloned. Clone is new Pickupable (&" << pickup << ")." << endl;
-        return pickup;
-    }
-
-    /**
-    @brief
         Method to transcribe a Pickupable as a Rewardable to the player.
     @param player
Index: code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h
===================================================================
--- code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h	(revision 9319)
+++ code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.h	(revision 9320)
@@ -137,12 +137,4 @@
             bool addTarget(Identifier* identifier); //!< Add a class, representetd by the input Identifier, as target of this Pickupable.
 
-            Pickupable* clone(void); //!< Creates a duplicate of the Pickupable.
-            /**
-            @brief Creates a duplicate of the input OrxonoxClass.
-                   This method needs to be implemented by any Class inheriting from Pickupable.
-            @param item A reference to a pointer to the OrxonoxClass that is to be duplicated.
-            */
-            virtual void clone(OrxonoxClass*& item) {}
-
             bool setUsed(bool used); //!< Sets the Pickupable to used or unused, depending on the input.
             bool setPickedUp(bool pickedUp); //!< Helper method to set the Pickupable to either picked up or not picked up.
@@ -196,7 +188,6 @@
     //! SUPER functions.
     SUPER_FUNCTION(10, Pickupable, changedUsed, false);
-    SUPER_FUNCTION(12, Pickupable, changedCarrier, false);
-    SUPER_FUNCTION(13, Pickupable, changedPickedUp, false);
-    SUPER_FUNCTION(11, Pickupable, clone, false);
+    SUPER_FUNCTION(11, Pickupable, changedCarrier, false);
+    SUPER_FUNCTION(12, Pickupable, changedPickedUp, false);
 }
 
