Index: branches/powerups/src/world_entities/playable.cc
===================================================================
--- branches/powerups/src/world_entities/playable.cc	(revision 6550)
+++ branches/powerups/src/world_entities/playable.cc	(revision 6588)
@@ -149,9 +149,6 @@
     Weapon* weapon = dynamic_cast<WeaponPowerUp*>(powerUp)->getWeapon();
     WeaponManager* manager = this->getWeaponManager();
-    int slot = manager->getNextFreeSlot(2, weapon->getCapability());
-    if(slot >= 0) {
-      manager->addWeapon(weapon, 2, slot);
-      return true;
-    }
+    manager->addWeapon(weapon, 2, -1);
+    return true;
   }
   else if(powerUp->isA(CL_PARAM_POWER_UP)) {
Index: branches/powerups/src/world_entities/power_ups/power_up.cc
===================================================================
--- branches/powerups/src/world_entities/power_ups/power_up.cc	(revision 6550)
+++ branches/powerups/src/world_entities/power_ups/power_up.cc	(revision 6588)
@@ -28,4 +28,6 @@
 
   this->respawnType = RESPAWN_NONE;
+  this->respawnStart = 10;
+  this->model = NULL;
 /*  if(!PowerUp::sphereModel) {*/
 
@@ -58,5 +60,16 @@
     if(dynamic_cast<Extendable*>(entity)->pickup(this))
     {
+      this->respawnTime = this->respawnStart;
       this->toList(OM_DEAD_TICK);
+    }
+  }
+}
+
+void PowerUp::tick(float dt) {
+  if(this->getOMListNumber() != OM_COMMON) {
+    this->respawnTime -= dt;
+    if(this->respawnTime <= 0) {
+      this->toList(OM_COMMON);
+      this->respawn();
     }
   }
@@ -65,19 +78,17 @@
 void PowerUp::draw() const
 {
+  if(this->model != NULL) {
+    glMatrixMode(GL_MODELVIEW);
+    glPushMatrix();
+    glTranslatef (this->getAbsCoor ().x,
+                  this->getAbsCoor ().y,
+                  this->getAbsCoor ().z);
+    Vector tmpRot = this->getAbsDir().getSpacialAxis();
+    glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
+    this->model->draw();
+    glPopMatrix();
+  }
   this->sphereMaterial->select();
   WorldEntity::draw();
-  /*glMatrixMode(GL_MODELVIEW);
-  glPushMatrix();
-
-  glTranslatef (this->getAbsCoor ().x,
-                this->getAbsCoor ().y,
-                this->getAbsCoor ().z);
-  Vector tmpRot = this->getAbsDir().getSpacialAxis();
-  glRotatef (this->getAbsDir().getSpacialAxisAngle(), tmpRot.x, tmpRot.y, tmpRot.z );
-
-   this->sphereMaterial->select();
-   this->getModel(0)->draw();
-
-  glPopMatrix();*/
 }
 
Index: branches/powerups/src/world_entities/power_ups/power_up.h
===================================================================
--- branches/powerups/src/world_entities/power_ups/power_up.h	(revision 6550)
+++ branches/powerups/src/world_entities/power_ups/power_up.h	(revision 6588)
@@ -24,4 +24,5 @@
 
   virtual void draw () const;
+  virtual void tick(float dt);
   void setRespawnType(const char* type);
 
@@ -33,8 +34,11 @@
   virtual ~PowerUp ();
   virtual void respawn() {};
+  Model* model;
 
 private:
   Material* sphereMaterial;
   PowerUpRespawn respawnType;
+  float respawnTime;
+  float respawnStart;
   static const char* respawnTypes[];
 };
Index: branches/powerups/src/world_entities/power_ups/weapon_power_up.cc
===================================================================
--- branches/powerups/src/world_entities/power_ups/weapon_power_up.cc	(revision 6550)
+++ branches/powerups/src/world_entities/power_ups/weapon_power_up.cc	(revision 6588)
@@ -69,4 +69,5 @@
     LoadParam(root, "weaponID", this, WeaponPowerUp, setWeaponClass);
   }
+  this->model = this->weapon->getModel(0);
 }
 
Index: branches/powerups/src/world_entities/weapons/turret.cc
===================================================================
--- branches/powerups/src/world_entities/weapons/turret.cc	(revision 6550)
+++ branches/powerups/src/world_entities/weapons/turret.cc	(revision 6588)
@@ -45,5 +45,4 @@
   this->setActionSound(WA_RELOAD, "sound/vocals/reload.wav");
 
-  this->loadModel("models/guns/turret1.obj");
 }
 
@@ -97,4 +96,6 @@
   this->setEmissionPoint(1.684, 0.472, 0);
   //this->getProjectileFactory()->prepare(100);
+  this->loadModel("models/guns/turret1.obj");
+
 }
 
