Index: code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11539)
+++ code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc	(revision 11540)
@@ -50,5 +50,5 @@
 
         std::string name = "HUDPickupItem" + getUniqueNumberString();
-
+        orxout() << "name: "<< name<<endl;
         overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", name ));
 
@@ -78,6 +78,8 @@
         assert(overlayElement_);
         assert(this->background_);
-        overlayElement_->hide();
-        //this->background_->removeChild(overlayElement_->getName());
+        orxout()<< overlayElement_->getName()<< endl;
+        //overlayElement_->hide();
+        this->background_->removeChild(overlayElement_->getName());
+        
     }
 }
Index: code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11539)
+++ code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc	(revision 11540)
@@ -68,4 +68,37 @@
     }
     
+    void HUDPickupSystem::sync(std::vector<Pickupable*> p)
+    {
+        //hide all pickup symbols in HUD and delete from local map
+
+        for(const auto& sm_pair : picks)
+        {
+            sm_pair.second->hideMe(sm_pair.first, repaint);
+            picks.erase(sm_pair.first);
+        }
+
+        //add to local map and place on screen
+        int i = 0;
+        const float offsetX = 0.345f;
+        float offsetY = 0.82f;
+        const float x = 0.102f;
+        for(Pickupable* pickup:p)
+        {
+            //second row has offset
+            if(i==4)
+            {    
+                i=0;
+                offsetY+=0.075f;
+            }
+
+            HUDPickupItem* item = new HUDPickupItem(this->getContext());
+            item->initializeMaterial(this->getIcon(((Pickup*)pickup)->getRepresentationName()), offsetX+i*x, offsetY);
+            orxout() << "created new pickupHUDItem"<<endl;
+            item->setOverlayGroup(this->getOverlayGroup());
+            picks[pickup] = item;
+            i++;
+        }
+
+    }
 
     void HUDPickupSystem::updatePickupList(std::vector<Pickupable*> picks, std::map<Pickupable*, uint32_t> indexes_)
@@ -92,5 +125,5 @@
                     HUDPickupItem* item = new HUDPickupItem(this->getContext());
                     item->initializeMaterial(this->getIcon(((Pickup*)p)->getRepresentationName()), offsetX+i*x, offsetY);
-                
+                    orxout() << "created new pickupHUDItem"<<endl;
                     item->setOverlayGroup(this->getOverlayGroup());
                     this->picks[p] = item;
@@ -110,4 +143,5 @@
         HUDPickupItem* item = this->picks.find(pickup)->second;
         orxout() << "removePickup: pickup= " << pickup << " item= " << item << endl;
+        this->picks.erase(pickup);
         //assert(item);
         item->hideMe(pickup, repaint);
@@ -115,5 +149,4 @@
         //assert(overlayElement_);
         //assert(this->background_);
-        //this->picks.erase(pickup);
         orxout()<< "end removePickup method" << endl;
     }
Index: code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h
===================================================================
--- code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11539)
+++ code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h	(revision 11540)
@@ -57,4 +57,5 @@
 
         void sizeChanged();
+        void sync(std::vector<Pickupable*> p);
         void updatePickupList(std::vector<Pickupable*> picks, std::map<Pickupable*, uint32_t> indexes_);  
         void createPickupList();  
Index: code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc
===================================================================
--- code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc	(revision 11539)
+++ code/branches/HUD_HS16/src/modules/pickup/PickupManager.cc	(revision 11540)
@@ -265,4 +265,5 @@
         assert(pickup);
 
+        orxout() << "just got called"<<endl;
         for (HUDPickupSystem* hud : ObjectList<HUDPickupSystem>())
             pickupSystem = hud;
@@ -299,5 +300,5 @@
 
             if(pickupSystem)
-                pickupSystem->updatePickupList(picks, indexes_);
+                pickupSystem->sync(picks);
             
         }
@@ -315,5 +316,5 @@
 
             if(pickupSystem)
-                pickupSystem->removePickup(pickup);
+                pickupSystem->sync(picks);
             orxout() << "end of pickupChangedPickedUp" << endl;
         }
