Index: /code/trunk/src/modules/overlays/hud/HUDPickupItem.cc
===================================================================
--- /code/trunk/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11701)
+++ /code/trunk/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11702)
@@ -36,7 +36,6 @@
 
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Convert.h"
 #include "core/class/Super.h"
+#include "util/StringUtils.h"
 #include "HUDPickupItem.h"
 
@@ -68,9 +67,6 @@
     }
 
-    void HUDPickupItem::hideMe(Pickupable* p, bool repaint)
+    void HUDPickupItem::hideMe()
     {
-        if(!repaint) return;                     //dont do anything, if we are not allowed to repaint because the level is terminating
-        assert(overlayElement_);
-        assert(this->background_);
         //overlayElement_->hide();
         this->background_->removeChild(overlayElement_->getName());
Index: /code/trunk/src/modules/overlays/hud/HUDPickupItem.h
===================================================================
--- /code/trunk/src/modules/overlays/hud/HUDPickupItem.h	(revision 11701)
+++ /code/trunk/src/modules/overlays/hud/HUDPickupItem.h	(revision 11702)
@@ -5,33 +5,20 @@
 #include "overlays/OverlaysPrereqs.h"
 
-#include <map>
-#include <vector>
-#include <string>
-
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h> 
-
+#include "util/OgreForwardRefs.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "tools/interfaces/Tickable.h"
-#include "worldentities/pawns/Pawn.h"
-#include "overlays/OverlayGroup.h"
-#include "pickup/Pickup.h"
 
 namespace orxonox
 {
-    class _OverlaysExport HUDPickupItem : public OrxonoxOverlay, public Tickable
+    class _OverlaysExport HUDPickupItem : public OrxonoxOverlay
     {
     public:
         HUDPickupItem(Context* context);
-        Ogre::PanelOverlayElement* overlayElement_;
         virtual ~HUDPickupItem();
         
         void initializeMaterial(const std::string& s, float x, float y);  
-        void hideMe(Pickupable* p, bool repaint); 
+        void hideMe();
 
-    private:        
-        WeakPtr<Pawn> owner_;
-        WeakPtr<Pickup> pickup_;
-
+    private:
+        Ogre::PanelOverlayElement* overlayElement_;
     };
 }
Index: /code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc
===================================================================
--- /code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11701)
+++ /code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11702)
@@ -30,11 +30,13 @@
 #include <string>
 
+#include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
+
 #include "core/CoreIncludes.h"
-#include "core/XMLPort.h"
-#include "util/Convert.h"
 #include "core/class/Super.h"
+#include "util/StringUtils.h"
 #include "HUDPickupSystem.h"
+#include "HUDPickupItem.h"
 #include "pickup/Pickup.h"
-#include "HUDPickupItem.h"
 #include "pickup/PickupManager.h"
 
@@ -68,11 +70,11 @@
         //hide all pickup symbols in HUD and delete from local map
         
-        for(const auto& sm_pair : picks)
+        for(HUDPickupItem* item : items_)
         {
-            sm_pair.second->hideMe(sm_pair.first, repaint);
+            item->hideMe();
         }
 
-        picks.clear();
-        assert(picks.empty()); //picks must be empty now
+        items_.clear();
+        assert(items_.empty()); //items_ must be empty now
 
         //add to local map and place on screen
@@ -95,12 +97,6 @@
             item->initializeMaterial(this->getIcon(((Pickup*)pickup)->getRepresentationName()), offsetX+i*x, offsetY);
             item->setOverlayGroup(this->getOverlayGroup());
-            picks[pickup] = item;
+            items_.push_back(item);
         }
-    }
-
-    
-    void HUDPickupSystem::destroyAll()
-    {
-        this->background_->removeChild(overlayElement_->getName());
     }
 
Index: /code/trunk/src/modules/overlays/hud/HUDPickupSystem.h
===================================================================
--- /code/trunk/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11701)
+++ /code/trunk/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11702)
@@ -33,18 +33,8 @@
 #include "overlays/OverlaysPrereqs.h"
 
-#include <map>
 #include <vector>
-#include <string>
 
-
-#include <OgreOverlayManager.h>
-#include <OgrePanelOverlayElement.h> 
-
+#include "util/OgreForwardRefs.h"
 #include "overlays/OrxonoxOverlay.h"
-#include "worldentities/pawns/Pawn.h"
-#include "overlays/OverlayGroup.h"
-#include "pickup/Pickup.h"
-#include "pickup/PickupRepresentation.h"
-#include "HUDPickupItem.h"
 
 namespace orxonox
@@ -59,17 +49,10 @@
         void sync(std::vector<Pickupable*> p, std::map<Pickupable*, uint32_t> indexes_);
 
-        bool repaint=true; //if we shouldnt repaint, set this to false
-
     private:
         
-        void destroyAll();
         std::string getIcon(std::string repName);
 
-        std::map<Pickupable*, HUDPickupItem*> picks;
-
+        std::vector<HUDPickupItem*> items_;
         Ogre::PanelOverlayElement* overlayElement_;
-        WeakPtr<Pawn> owner_;
-
-        std::vector<PickupRepresentation> pickupRepresentations_;
     };
 }
