Index: /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc
===================================================================
--- /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11305)
@@ -65,10 +65,10 @@
     }
 
-    void initializeMaterial(const std::string& s)
+    void HUDPickupItem::initializeMaterial(const std::string& s)
     {
         overlayElement_->setMaterialName(s);
     }
 
-    void printHello()
+    void HUDPickupItem::printHello()
     {
         orxout() << "lets say hello" << endl;
Index: /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.h
===================================================================
--- /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.h	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.h	(revision 11305)
@@ -53,3 +53,3 @@
 }
 
-#endif /* _HUDWeapon_H__ */
+#endif
Index: /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc
===================================================================
--- /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11305)
@@ -37,4 +37,5 @@
 #include "pickup/Pickup.h"
 #include "HUDPickupItem.h"
+#include "pickup/PickupManager.h"
 
 namespace orxonox
@@ -53,4 +54,5 @@
         this->background_->addChild(overlayElement_);
 
+        PickupManager::getInstance().setPickupSystem(this);
     }
 
@@ -65,10 +67,10 @@
    //TODO: XMLPort
 
-    void HUDPickupSystem::updatePickupList(std::vector<WeakPtr<Pickup>> picks)
+    void HUDPickupSystem::updatePickupList(std::vector<Pickupable*> picks)
     {
-        for(Pickup* p : picks)
+        for(Pickupable* p : picks)
         {
             HUDPickupItem* item = new HUDPickupItem(this->getContext());
-            // item->initializeMaterial(p->getRepresentationName());
+            item->initializeMaterial(((Pickup*)p)->getRepresentationName());
             item->printHello();
         }
Index: /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h
===================================================================
--- /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11305)
@@ -26,4 +26,9 @@
  *
  */
+
+
+#ifndef _HUDPickupSystem_H__
+#define _HUDPickupSystem_H__
+
 #include "overlays/OverlaysPrereqs.h"
 
@@ -58,6 +63,6 @@
         // virtual void positionChanged() override;
         // virtual void sizeChanged() override;
+        void updatePickupList(std::vector<Pickupable*> picks);    
     private:
-        void updatePickupList(std::vector<WeakPtr<Pickup>> picks);
         void createPickupList();
         void destroyAll();
@@ -69,2 +74,4 @@
     };
 }
+
+#endif
Index: /code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc
===================================================================
--- /code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc	(revision 11305)
@@ -51,5 +51,5 @@
 #include "CollectiblePickup.h"
 #include "PickupRepresentation.h"
-// #include "overlays/hud/HUDPickupSystem.h"
+#include "overlays/hud/HUDPickupSystem.h"
 
 namespace orxonox
@@ -70,5 +70,4 @@
     SetConsoleCommand("useUnusePickup", &PickupManager::useUnusePickup).addShortcut().setActive(true);
 
-   // SetConsoleCommand("HumanController", "fire",           &HumanController::fire          ).addShortcut().keybindMode(KeybindMode::OnHold);
     /**
     @brief
@@ -82,4 +81,9 @@
 
         orxout(internal_info, context::pickups) << "PickupManager created." << endl;
+    }
+
+    void PickupManager::setPickupSystem(HUDPickupSystem* system)
+    {
+        pickupSystem=system;
     }
 
@@ -295,9 +299,18 @@
             this->pickups_[index] = pickup;
 
-            //  //Add pickup keybinding
-            // if( KeyBinderManager::exists() )
-            //     addKeyBindingForNewPickup(pickup, index);
-            // else
-            //     orxout() << "Could not create new keybinding because KeyBinderManager doesn't exist." << endl;
+            //TODO
+            std::vector<Pickupable*> picks;
+
+            PickupManager& manager = PickupManager::getInstance();
+            
+            Pickupable* pickup = nullptr;
+
+            for(uint32_t i = 0; i!=10; i++)
+            {
+                pickup=manager.pickups_.find(i)->second;
+                picks.push_back(pickup);
+            }
+            // pickupSystem->updatePickupList(picks);
+            
         }
         else // If it was dropped, it is removed from the required lists.
@@ -307,11 +320,5 @@
             index = it->second;
 
-            // //Remove pickup keybinding
-            // if( KeyBinderManager::exists() )
-            //       removeKeyBindingForOldPickup(pickup, index);
-            // else
-            //     orxout() << "Could not delete old keybinding because KeyBinderManager doesn't exist." << endl;
-
-            // Remove the Pickupable from the indexes_ and pickups_ list.
+            
             this->indexes_.erase(pickup);
             this->pickups_.find(index)->second=nullptr; //set to null, so that can be identified as free slot by getPickupIndex()
@@ -342,38 +349,4 @@
 
     }
-
-    //PRECONDITION: KeyBinderManager exists, pickup is not NULL, 0 < index < 9
-    //FUNCTION: Adds a keybinding for the new pickup using its index and sets a console command
-    // void PickupManager::addKeyBindingForNewPickup(Pickupable* pickup, uint32_t index)
-    // {
-    //     std::string name="Keys.KeyNumpad";
-    //     std::string binding="useOrUnusePickup";
-
-    //     name.append(std::to_string(index));
-    //     binding.append(std::to_string(index));
-
-    //     SetConsoleCommand(binding, &PickupManager::useUnusePickup(pickup, index));
-    //     KeyBinderManager::getInstance().getCurrent()->setBinding(binding, name, true); 
-
-    //     orxout() << "Keybinding for item " << index << " has been added on keybinding " << name << endl;
-
-
-    // }
-
-    //PRECONDITION: KeyBinderManager exists, pickup is not NULL, 0 < index < 9
-    //FUNCTION: Removes the keybinding of the pickup using its index
-    // void PickupManager::removeKeyBindingForOldPickup(Pickupable* pickup, uint32_t index)
-    // {
-    //     std::string name="Keys.KeyNumpad";
-    //     std::string binding="";
-
-    //     name.append(std::to_string(index));
-
-    //     SetConsoleCommand(binding, nullptr);
-    //     KeyBinderManager::getInstance().getCurrent()->setBinding("", name, true); 
-
-    //     orxout() << "Keybinding for item " << index << " has been removed on keybinding " << name << endl;
-
-    // }
 
     //This function is called by the command line or by the key binding
Index: /code/branches/HUD_HS16/src/modules/pickup/PickupManager.h
===================================================================
--- /code/branches/HUD_HS16/src/modules/pickup/PickupManager.h	(revision 11304)
+++ /code/branches/HUD_HS16/src/modules/pickup/PickupManager.h	(revision 11305)
@@ -45,4 +45,5 @@
 #include "util/Singleton.h"
 #include "interfaces/PickupListener.h"
+#include "overlays/hud/HUDPickupSystem.h"
 
 namespace orxonox // tolua_export
@@ -148,6 +149,8 @@
             static void dropPickupNetworked(uint32_t pickup); //!< Helper method to drop the input pickup on the server.
             static void usePickupNetworked(uint32_t pickup, bool use); //!< Helper method to use (or unuse) the input Pickupable on the server.
+            void setPickupSystem(HUDPickupSystem* system);
 
         private:
+            HUDPickupSystem* pickupSystem;
             static PickupManager* singletonPtr_s;
             static const std::string guiName_s; //!< The name of the PickupInventory
