Index: /code/branches/ppspickups2/src/modules/pickup/Pickup.cc
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/Pickup.cc	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/Pickup.cc	(revision 6708)
@@ -250,5 +250,5 @@
             return false;
         }
-        this->durationTimer_.setTimer(durationTime, false, createExecutor(createFunctor(&Pickup::PickupTimerCallBack, this)));
+        this->durationTimer_.setTimer(durationTime, false, createExecutor(createFunctor(&Pickup::pickupTimerCallback, this)));
         return true;
     }
Index: /code/branches/ppspickups2/src/modules/pickup/Pickup.h
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/Pickup.h	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/Pickup.h	(revision 6708)
@@ -137,5 +137,5 @@
             bool startPickupTimer(float durationTime);
 
-            virtual void PickupTimerCallBack(void) {}
+            virtual void pickupTimerCallback(void) {}
 
             /**
Index: /code/branches/ppspickups2/src/modules/pickup/PickupPrereqs.h
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/PickupPrereqs.h	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/PickupPrereqs.h	(revision 6708)
@@ -76,4 +76,5 @@
     //items
     class HealthPickup;
+    class InvisiblePickup;
     class MetaPickup;
     
Index: /code/branches/ppspickups2/src/modules/pickup/PickupSpawner.cc
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/PickupSpawner.cc	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/PickupSpawner.cc	(revision 6708)
@@ -103,5 +103,5 @@
     void PickupSpawner::initialize(void)
     {
-        this->triggerDistance_ = 20;
+        this->triggerDistance_ = 10;
         this->respawnTime_ = 0;
         this->maxSpawnedItems_ = INF;
Index: /code/branches/ppspickups2/src/modules/pickup/items/CMakeLists.txt
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/items/CMakeLists.txt	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/items/CMakeLists.txt	(revision 6708)
@@ -1,5 +1,5 @@
 ADD_SOURCE_FILES(PICKUP_SRC_FILES
   HealthPickup.cc
+  InvisiblePickup.cc
   MetaPickup.cc
-  InvisiblePickup.cc
 )
Index: /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.cc	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.cc	(revision 6708)
@@ -55,6 +55,6 @@
     {
         RegisterObject(InvisiblePickup);
-	//! Defines who is allowed to pick up the pickup.
-	this->initialize(); 
+        //! Defines who is allowed to pick up the pickup.
+        this->initialize(); 
     }
     
@@ -70,9 +70,9 @@
     void InvisiblePickup::initializeIdentifier(void)
     {
-	std::stringstream stream;
-	stream << this->getDuration();
-	std::string type1 = "duration";
-	std::string val1 = stream.str();
-	this->pickupIdentifier_->addParameter(type1, val1);
+        std::stringstream stream;
+        stream << this->getDuration();
+        std::string type1 = "duration";
+        std::string val1 = stream.str();
+        this->pickupIdentifier_->addParameter(type1, val1);
     }
     
@@ -83,6 +83,6 @@
     void InvisiblePickup::initialize(void)
     {
-	this->duration_ = 0.0;
-	this->addTarget(ClassIdentifier<Pawn>::getIdentifier());
+        this->duration_ = 0.0f;
+        this->addTarget(ClassIdentifier<Pawn>::getIdentifier());
     }
 
@@ -94,7 +94,7 @@
     {
         SUPER(InvisiblePickup, XMLPort, xmlelement, mode);    
-	XMLPortParam(InvisiblePickup, "duration", setDuration, getDuration, xmlelement, mode);
-	 
-	 this->initializeIdentifier();
+        XMLPortParam(InvisiblePickup, "duration", setDuration, getDuration, xmlelement, mode);
+        
+        this->initializeIdentifier();
     }
     
@@ -106,17 +106,20 @@
     {
         SUPER(InvisiblePickup, changedUsed);
-	
         
         //! If the pickup is not picked up nothing must be done.
         if(!this->isPickedUp())
             return;
-	if (this->isUsed())
-	{
-	    this->startPickupTimer(this->getDuration());
-	    this->setInvisible(true);
-	}
-	else
-	  this->setInvisible(false);
-	
+        
+        if (this->isUsed())
+        {
+            this->startPickupTimer(this->getDuration());
+            this->setInvisible(true);
+        }
+        else
+        {
+            this->setInvisible(false);
+            this->destroy();
+        }
+        
     }
     
@@ -151,8 +154,8 @@
         
         SUPER(InvisiblePickup, clone, item);
-	
-	InvisiblePickup* pickup = dynamic_cast<InvisiblePickup*>(item);
-	pickup->setDuration(this->getDuration());
-	pickup->initializeIdentifier();
+        
+        InvisiblePickup* pickup = dynamic_cast<InvisiblePickup*>(item);
+        pickup->setDuration(this->getDuration());
+        pickup->initializeIdentifier();
     }
     
@@ -160,37 +163,39 @@
     @brief
         Sets the invisibility.
-    @param health
+    @param invisibility
         The invisibility.
     */
     bool InvisiblePickup::setInvisible(bool invisibility)
     {
-      
-      Pawn* pawn = this->carrierToPawnHelper();
-      pawn->setVisible(!invisibility);
-      return 0;
-    }
-    
-    /**
-    @brief
-    Sets the duration.
+        Pawn* pawn = this->carrierToPawnHelper();
+        if(pawn == NULL)
+            return false;
+        
+        pawn->setVisible(!invisibility);
+        return true;
+    }
+    
+    /**
+    @brief
+        Sets the duration.
     @param duration
-    The duration
+        The duration
     */
     void InvisiblePickup::setDuration(float duration)
     {
-	if(duration >= 0.0f)
-	{
-	    this->duration_ = duration;
-	}
-	else
-	{
-	    COUT(1) << "Invalid duration in InvisiblePickup." << std::endl;
-	    this->duration_ = 0;
-	}
-    }
-    
-    void InvisiblePickup::PickupTimerCallBack(void)
-    {
-	this->setInvisible(false);
+        if(duration >= 0.0f)
+        {
+            this->duration_ = duration;
+        }
+        else
+        {
+            COUT(1) << "Invalid duration in InvisiblePickup." << std::endl;
+            this->duration_ = 0.0f;
+        }
+    }
+    
+    void InvisiblePickup::pickupTimerCallback(void)
+    {
+        this->setUsed(false);
     }
 
Index: /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.h
===================================================================
--- /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.h	(revision 6707)
+++ /code/branches/ppspickups2/src/modules/pickup/items/InvisiblePickup.h	(revision 6708)
@@ -64,24 +64,24 @@
             virtual void clone(OrxonoxClass*& item); //!< Creates a duplicate of the input OrxonoxClass.
             
-	     /**
-            @brief Checks wether the Pawn is invisible.
+            /**
+            @brief Checks whether the Pawn is invisible.
             @return Returns if the Pawn is invisible.
             */
             inline bool getInvisibility(bool)
                 { return this->invisible_; }
-	    inline float getDuration()
-		{return this->duration_;}
+            inline float getDuration()
+                { return this->duration_; }
  
         protected:
-	    bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again.
-	    void setDuration(float duration);
-	    void initializeIdentifier(void);
+            bool setInvisible(bool invisibility); //!< Set the Pawn to be invisible or visible again.
+            void setDuration(float duration);
+            void initializeIdentifier(void);
+            virtual void pickupTimerCallback(void); //!< Function that gets called when the timer ends.
         
         private:
-	   void initialize(void); //!< Initializes the member variables.
+            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.
-            void PickupTimerCallBack(void); //!< Function that gets called when the timer ends.
-	    bool invisible_; //!< Helper to remember wether the Pawn is invisible.
-	    float duration_; //! Duration of invisibility.
+            bool invisible_; //!< Helper to remember wether the Pawn is invisible.
+            float duration_; //! Duration of invisibility.
     };
 }
