Index: /code/branches/core7/src/modules/dodgerace/DodgeRace.cc
===================================================================
--- /code/branches/core7/src/modules/dodgerace/DodgeRace.cc	(revision 10556)
+++ /code/branches/core7/src/modules/dodgerace/DodgeRace.cc	(revision 10557)
@@ -75,5 +75,5 @@
             for (int i = 0; i < 7; i++)
             {
-                WeakPtr<BigExplosion> chunk = new BigExplosion(this->center_->getContext());
+                BigExplosion* chunk = new BigExplosion(this->center_->getContext());
                 chunk->setPosition(Vector3(600, 0, 100.f * i - 300));
                 chunk->setVelocity(Vector3(1000, 0, 0));  //player->getVelocity()
@@ -91,6 +91,4 @@
         if (getPlayer() != NULL)
         {
-            //WeakPtr<DodgeRaceShip> ship = getPlayer();
-
             currentPosition = getPlayer()->getWorldPosition().x;
             counter = counter + (currentPosition - lastPosition);
@@ -113,5 +111,5 @@
                 for(int i = 0; i<6; i++)
                 {
-                    WeakPtr<DodgeRaceCube> cube = new DodgeRaceCube(this->center_->getContext());
+                    DodgeRaceCube* cube = new DodgeRaceCube(this->center_->getContext());
                     cubeList.push_back(cube);
                     switch(pattern)
@@ -138,5 +136,5 @@
     }
 
-    WeakPtr<DodgeRaceShip> DodgeRace::getPlayer()
+    DodgeRaceShip* DodgeRace::getPlayer()
     {
         if (player == NULL)
Index: /code/branches/core7/src/modules/dodgerace/DodgeRace.h
===================================================================
--- /code/branches/core7/src/modules/dodgerace/DodgeRace.h	(revision 10556)
+++ /code/branches/core7/src/modules/dodgerace/DodgeRace.h	(revision 10557)
@@ -105,5 +105,5 @@
             Timer endGameTimer;
 
-            WeakPtr<DodgeRaceShip> getPlayer();
+            DodgeRaceShip* getPlayer();
             WeakPtr<DodgeRaceShip> player;
             std::vector<DodgeRaceCube*> cubeList;
Index: /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.cc
===================================================================
--- /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.cc	(revision 10556)
+++ /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.cc	(revision 10557)
@@ -90,5 +90,5 @@
 
         // Camera
-        WeakPtr<Camera> camera = this->getCamera();
+        Camera* camera = this->getCamera();
         if (camera != NULL)
         {
@@ -150,5 +150,5 @@
     }
 
-    WeakPtr<DodgeRace> DodgeRaceShip::getGame()
+    DodgeRace* DodgeRaceShip::getGame()
     {
         if (game == NULL)
Index: /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.h
===================================================================
--- /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.h	(revision 10556)
+++ /code/branches/core7/src/modules/dodgerace/DodgeRaceShip.h	(revision 10557)
@@ -78,5 +78,5 @@
         private:
             virtual inline bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
-            WeakPtr<DodgeRace> getGame();
+            DodgeRace* getGame();
             WeakPtr<DodgeRace> game;
             WeakPtr<WorldEntity> lastEntity;
Index: /code/branches/core7/src/modules/invader/Invader.cc
===================================================================
--- /code/branches/core7/src/modules/invader/Invader.cc	(revision 10556)
+++ /code/branches/core7/src/modules/invader/Invader.cc	(revision 10557)
@@ -87,5 +87,5 @@
             for (int i = 0; i < 7; i++)
             {
-                WeakPtr<BigExplosion> chunk = new BigExplosion(this->center_->getContext());
+                BigExplosion* chunk = new BigExplosion(this->center_->getContext());
                 chunk->setPosition(Vector3(600, 0, 100.f * i - 300));
                 chunk->setVelocity(Vector3(1000, 0, 0));  //player->getVelocity()
@@ -99,5 +99,5 @@
     }
 
-    WeakPtr<InvaderShip> Invader::getPlayer()
+    InvaderShip* Invader::getPlayer()
     {
         if (player == NULL)
@@ -116,5 +116,5 @@
         for (int i = 0; i < (3*log10(static_cast<double>(level)) + 1); i++)
         {
-            WeakPtr<InvaderEnemy> newPawn;
+            InvaderEnemy* newPawn;
             if (rand() % 42/(1 + level*level) == 0)
             {
Index: /code/branches/core7/src/modules/invader/Invader.h
===================================================================
--- /code/branches/core7/src/modules/invader/Invader.h	(revision 10556)
+++ /code/branches/core7/src/modules/invader/Invader.h	(revision 10557)
@@ -78,5 +78,5 @@
         private:
             void toggleShowLevel(){bShowLevel = !bShowLevel;}
-            WeakPtr<InvaderShip> getPlayer();
+            InvaderShip* getPlayer();
             WeakPtr<InvaderCenterPoint> center_;
             WeakPtr<InvaderShip> player;
Index: /code/branches/core7/src/modules/invader/InvaderEnemy.cc
===================================================================
--- /code/branches/core7/src/modules/invader/InvaderEnemy.cc	(revision 10556)
+++ /code/branches/core7/src/modules/invader/InvaderEnemy.cc	(revision 10557)
@@ -69,5 +69,5 @@
     }
 
-    WeakPtr<Invader> InvaderEnemy::getGame()
+    Invader* InvaderEnemy::getGame()
     {
         if (game == NULL)
Index: /code/branches/core7/src/modules/invader/InvaderEnemy.h
===================================================================
--- /code/branches/core7/src/modules/invader/InvaderEnemy.h	(revision 10556)
+++ /code/branches/core7/src/modules/invader/InvaderEnemy.h	(revision 10557)
@@ -49,9 +49,9 @@
             virtual bool collidesAgainst(WorldEntity* otherObject, btManifoldPoint& contactPoint);
             virtual void damage(float damage, float healthdamage, float shielddamage, Pawn* originator);
-            virtual void setPlayer(WeakPtr<InvaderShip> player){this->player = player;}
+            virtual void setPlayer(InvaderShip* player){this->player = player;}
 
             int level;
         protected:
-            WeakPtr<Invader> getGame();
+            Invader* getGame();
             WeakPtr<Invader> game;
             WeakPtr<InvaderShip> player;
Index: /code/branches/core7/src/modules/invader/InvaderShip.cc
===================================================================
--- /code/branches/core7/src/modules/invader/InvaderShip.cc	(revision 10556)
+++ /code/branches/core7/src/modules/invader/InvaderShip.cc	(revision 10557)
@@ -91,5 +91,5 @@
 
         // Camera
-        WeakPtr<Camera> camera = this->getCamera();
+        Camera* camera = this->getCamera();
         if (camera != NULL)
         {
@@ -142,6 +142,6 @@
     {
         // orxout() << "touch!!! " << endl; //<< otherObject << " at " << contactPoint;
-        WeakPtr<InvaderEnemy> enemy = orxonox_cast<InvaderEnemy*>(otherObject);
-        WeakPtr<Projectile> shot = orxonox_cast<Projectile*>(otherObject);
+        InvaderEnemy* enemy = orxonox_cast<InvaderEnemy*>(otherObject);
+        Projectile* shot = orxonox_cast<Projectile*>(otherObject);
         // ensure that this gets only called once per enemy.
         if (enemy != NULL && lastEnemy != enemy)
@@ -171,5 +171,5 @@
     }
 
-    WeakPtr<Invader> InvaderShip::getGame()
+    Invader* InvaderShip::getGame()
     {
         if (game == NULL)
Index: /code/branches/core7/src/modules/invader/InvaderShip.h
===================================================================
--- /code/branches/core7/src/modules/invader/InvaderShip.h	(revision 10556)
+++ /code/branches/core7/src/modules/invader/InvaderShip.h	(revision 10557)
@@ -70,5 +70,5 @@
             virtual void death();
         private:
-            WeakPtr<Invader> getGame();
+            Invader* getGame();
             WeakPtr<Invader> game;
             Camera* camera;
Index: /code/branches/core7/src/modules/invader/InvaderWeapon.cc
===================================================================
--- /code/branches/core7/src/modules/invader/InvaderWeapon.cc	(revision 10556)
+++ /code/branches/core7/src/modules/invader/InvaderWeapon.cc	(revision 10557)
@@ -68,5 +68,5 @@
         // Create the projectile.projectile
         projectile = new Projectile(this->getContext());
-        WeakPtr<Model> model = new Model(projectile->getContext());
+        Model* model = new Model(projectile->getContext());
         model->setMeshSource(mesh_);
         model->setCastShadows(false);
Index: /code/branches/core7/src/modules/jump/JumpEnemy.cc
===================================================================
--- /code/branches/core7/src/modules/jump/JumpEnemy.cc	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpEnemy.cc	(revision 10557)
@@ -151,5 +151,5 @@
         An array (of size 2) of weak pointers, to be set as the new bats.
     */
-    void JumpEnemy::setFigure(WeakPtr<JumpFigure> newFigure)
+    void JumpEnemy::setFigure(JumpFigure* newFigure)
     {
         figure_ = newFigure;
Index: /code/branches/core7/src/modules/jump/JumpEnemy.h
===================================================================
--- /code/branches/core7/src/modules/jump/JumpEnemy.h	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpEnemy.h	(revision 10557)
@@ -68,5 +68,5 @@
 
             virtual void setProperties(float newLeftBoundary, float newRightBoundary, float newLowerBoundary, float newUpperBoundary, float newHSpeed, float newVSpeed);
-            void setFigure(WeakPtr<JumpFigure> bats);
+            void setFigure(JumpFigure* newFigure);
             virtual void touchFigure();
             bool dead_;
Index: /code/branches/core7/src/modules/jump/JumpItem.cc
===================================================================
--- /code/branches/core7/src/modules/jump/JumpItem.cc	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpItem.cc	(revision 10557)
@@ -109,5 +109,5 @@
     }
 
-    void JumpItem::setFigure(WeakPtr<JumpFigure> newFigure)
+    void JumpItem::setFigure(JumpFigure* newFigure)
     {
         figure_ = newFigure;
Index: /code/branches/core7/src/modules/jump/JumpItem.h
===================================================================
--- /code/branches/core7/src/modules/jump/JumpItem.h	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpItem.h	(revision 10557)
@@ -53,5 +53,5 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
             virtual void setProperties(float newLeftBoundary, float newRightBoundary, float newLowerBoundary, float newUpperBoundary, float newHSpeed, float newVSpeed);
-            virtual void setFigure(WeakPtr<JumpFigure> bats);
+            virtual void setFigure(JumpFigure* newFigure);
             virtual void touchFigure();
 
Index: /code/branches/core7/src/modules/jump/JumpPlatform.cc
===================================================================
--- /code/branches/core7/src/modules/jump/JumpPlatform.cc	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpPlatform.cc	(revision 10557)
@@ -125,5 +125,5 @@
     }
 
-    void JumpPlatform::setFigure(WeakPtr<JumpFigure> newFigure)
+    void JumpPlatform::setFigure(JumpFigure* newFigure)
     {
         figure_ = newFigure;
Index: /code/branches/core7/src/modules/jump/JumpPlatform.h
===================================================================
--- /code/branches/core7/src/modules/jump/JumpPlatform.h	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpPlatform.h	(revision 10557)
@@ -49,5 +49,5 @@
             virtual void tick(float dt);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-            void setFigure(WeakPtr<JumpFigure> bats); //!< Set the bats for the ball.
+            void setFigure(JumpFigure* newFigure);
             virtual void touchFigure();
 
Index: /code/branches/core7/src/modules/jump/JumpProjectile.cc
===================================================================
--- /code/branches/core7/src/modules/jump/JumpProjectile.cc	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpProjectile.cc	(revision 10557)
@@ -84,5 +84,5 @@
     }
 
-    void JumpProjectile::setFigure(WeakPtr<JumpFigure> figure)
+    void JumpProjectile::setFigure(JumpFigure* figure)
     {
         figure_ = figure;
Index: /code/branches/core7/src/modules/jump/JumpProjectile.h
===================================================================
--- /code/branches/core7/src/modules/jump/JumpProjectile.h	(revision 10556)
+++ /code/branches/core7/src/modules/jump/JumpProjectile.h	(revision 10557)
@@ -56,5 +56,5 @@
                 { return Vector2(this->fieldWidth_, this->fieldHeight_); }
 
-            void setFigure(WeakPtr<JumpFigure> figure);
+            void setFigure(JumpFigure* figure);
 
         protected:
Index: /code/branches/core7/src/modules/objects/triggers/DistanceTrigger.cc
===================================================================
--- /code/branches/core7/src/modules/objects/triggers/DistanceTrigger.cc	(revision 10556)
+++ /code/branches/core7/src/modules/objects/triggers/DistanceTrigger.cc	(revision 10557)
@@ -213,5 +213,5 @@
                 
                 // Add the entity to the cache.
-                this->cache_ = WeakPtr<WorldEntity>(entity);
+                this->cache_ = entity;
 
                 return true;
Index: /code/branches/core7/src/modules/tetris/Tetris.h
===================================================================
--- /code/branches/core7/src/modules/tetris/Tetris.h	(revision 10556)
+++ /code/branches/core7/src/modules/tetris/Tetris.h	(revision 10557)
@@ -69,5 +69,5 @@
 
             PlayerInfo* getPlayer(void) const; //!< Get the player.
-            WeakPtr<TetrisCenterpoint> getCenterpoint(void)
+            TetrisCenterpoint* getCenterpoint(void)
                 { return this->center_; }
 
Index: /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.cc
===================================================================
--- /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 10556)
+++ /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.cc	(revision 10557)
@@ -49,5 +49,5 @@
     }
 
-    WeakPtr<TowerDefense> TowerDefenseEnemy::getGame()
+    TowerDefense* TowerDefenseEnemy::getGame()
     {
         if (game == NULL)
Index: /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.h
===================================================================
--- /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.h	(revision 10556)
+++ /code/branches/core7/src/modules/towerdefense/TowerDefenseEnemy.h	(revision 10557)
@@ -47,5 +47,5 @@
 
     private:
-        WeakPtr<TowerDefense> getGame();
+        TowerDefense* getGame();
         WeakPtr<TowerDefense> game;
         TowerDefense* td;
Index: /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.cc
===================================================================
--- /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.cc	(revision 10556)
+++ /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.cc	(revision 10557)
@@ -310,10 +310,7 @@
         if (spaceship)
         {
-            WeakPtr<SpaceShip>* ptr = new WeakPtr<SpaceShip>(spaceship);
-            if(ptr == NULL)
-                return;
             spaceship->addSpeedFactor(5);
             ExecutorPtr executor = createExecutor(createFunctor(&Dynamicmatch::resetSpeedFactor, this));
-            executor->setDefaultValue(0, ptr);
+            executor->setDefaultValue(0, spaceship);
             new Timer(10, false, executor, true);
         }
@@ -593,11 +590,10 @@
     }
 
-    void Dynamicmatch::resetSpeedFactor(WeakPtr<SpaceShip>* ptr)// helper function
-    {
-        if (*ptr)
-        {
-            (*ptr)->addSpeedFactor(1.0f/5.0f);
-        }
-        delete ptr;
+    void Dynamicmatch::resetSpeedFactor(SpaceShip* spaceship)// helper function
+    {
+        if (spaceship)
+        {
+            spaceship->addSpeedFactor(1.0f/5.0f);
+        }
     }
 
Index: /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.h
===================================================================
--- /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.h	(revision 10556)
+++ /code/branches/core7/src/orxonox/gametypes/Dynamicmatch.h	(revision 10557)
@@ -77,5 +77,5 @@
             virtual void rewardPig();
             void grantPigBoost(SpaceShip* spaceship); // Grant the piggy a boost.
-            void resetSpeedFactor(WeakPtr<SpaceShip>* ptr);
+            void resetSpeedFactor(SpaceShip* spaceship);
             void tick (float dt);// used to end the game
             SpawnPoint* getBestSpawnPoint(PlayerInfo* player) const;
Index: /code/branches/core7/src/orxonox/infos/PlayerInfo.cc
===================================================================
--- /code/branches/core7/src/orxonox/infos/PlayerInfo.cc	(revision 10556)
+++ /code/branches/core7/src/orxonox/infos/PlayerInfo.cc	(revision 10557)
@@ -186,5 +186,5 @@
 
         this->controllableEntity_->destroyHud(); // HACK-ish
-        this->previousControllableEntity_.push_back(WeakPtr<ControllableEntity>(this->controllableEntity_));
+        this->previousControllableEntity_.push_back(this->controllableEntity_);
         this->controllableEntity_ = entity;
         this->controllableEntityID_ = entity->getObjectID();
Index: /code/branches/core7/src/orxonox/interfaces/InterfaceCompilation.cc
===================================================================
--- /code/branches/core7/src/orxonox/interfaces/InterfaceCompilation.cc	(revision 10556)
+++ /code/branches/core7/src/orxonox/interfaces/InterfaceCompilation.cc	(revision 10557)
@@ -72,7 +72,7 @@
     {
         assert(pawn);
-        this->pawn_ = WeakPtr<Pawn>(pawn);
+        this->pawn_ = pawn;
         if (pawn)
-            this->player_ = WeakPtr<PlayerInfo>(pawn->getPlayer());
+            this->player_ = pawn->getPlayer();
     }
 
Index: /code/branches/core7/src/orxonox/sound/SoundManager.cc
===================================================================
--- /code/branches/core7/src/orxonox/sound/SoundManager.cc	(revision 10556)
+++ /code/branches/core7/src/orxonox/sound/SoundManager.cc	(revision 10557)
@@ -419,5 +419,5 @@
     }
 
-    void SoundManager::fadeIn(const StrongPtr<AmbientSound>& sound)
+    void SoundManager::fadeIn(AmbientSound* sound)
     {
         // If we're already fading out --> remove that
@@ -435,5 +435,5 @@
     }
 
-    void SoundManager::fadeOut(const StrongPtr<AmbientSound>& sound)
+    void SoundManager::fadeOut(AmbientSound* sound)
     {
         // If we're already fading in --> remove that
Index: /code/branches/core7/src/orxonox/sound/SoundManager.h
===================================================================
--- /code/branches/core7/src/orxonox/sound/SoundManager.h	(revision 10556)
+++ /code/branches/core7/src/orxonox/sound/SoundManager.h	(revision 10557)
@@ -106,6 +106,6 @@
     private:
         void processCrossFading(float dt);
-        void fadeIn(const StrongPtr<AmbientSound>& sound);
-        void fadeOut(const StrongPtr<AmbientSound>& sound);
+        void fadeIn(AmbientSound* sound);
+        void fadeOut(AmbientSound* sound);
 
         void checkFadeStepValidity();
