Index: code/trunk/src/orxonox/worldentities/pawns/Destroyer.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Destroyer.cc	(revision 5781)
+++ code/trunk/src/orxonox/worldentities/pawns/Destroyer.cc	(revision 5929)
@@ -40,5 +40,5 @@
         RegisterObject(Destroyer);
 
-        UnderAttack* gametype = orxonox_cast<UnderAttack*>(this->getGametype());
+        UnderAttack* gametype = orxonox_cast<UnderAttack*>(this->getGametype().get());
         if (gametype)
         {
Index: code/trunk/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 5781)
+++ code/trunk/src/orxonox/worldentities/pawns/Pawn.cc	(revision 5929)
@@ -36,5 +36,4 @@
 #include "network/NetworkFunction.h"
 
-#include "interfaces/PawnListener.h"
 #include "PawnManager.h"
 #include "infos/PlayerInfo.h"
@@ -93,9 +92,6 @@
         if (this->isInitialized())
         {
-            for (ObjectList<PawnListener>::iterator it = ObjectList<PawnListener>::begin(); it != ObjectList<PawnListener>::end(); ++it)
-                it->destroyedPawn(this);
-
             if (this->weaponSystem_)
-                delete this->weaponSystem_;
+                this->weaponSystem_->destroy();
         }
     }
Index: code/trunk/src/orxonox/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 5781)
+++ code/trunk/src/orxonox/worldentities/pawns/SpaceShip.cc	(revision 5929)
@@ -75,5 +75,5 @@
     {
         if (this->isInitialized() && this->engine_)
-            delete this->engine_;
+            this->engine_->destroy();
     }
 
@@ -207,5 +207,5 @@
                     else
                     {
-                        delete object;
+                        object->destroy();
                     }
                 }
Index: code/trunk/src/orxonox/worldentities/pawns/Spectator.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/Spectator.cc	(revision 5781)
+++ code/trunk/src/orxonox/worldentities/pawns/Spectator.cc	(revision 5929)
@@ -145,5 +145,5 @@
         ControllableEntity::setPlayer(player);
 
-//        this->setObjectMode(ObjectDirection::ToClient);
+//        this->setSyncMode(ObjectDirection::ToClient);
     }
 
Index: code/trunk/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc
===================================================================
--- code/trunk/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc	(revision 5781)
+++ code/trunk/src/orxonox/worldentities/pawns/TeamBaseMatchBase.cc	(revision 5929)
@@ -31,5 +31,5 @@
 
 #include "core/CoreIncludes.h"
-#include "interfaces/PawnListener.h"
+#include "controllers/ArtificialController.h"
 #include "interfaces/TeamColourable.h"
 #include "gametypes/TeamBaseMatch.h"
@@ -45,5 +45,5 @@
         this->state_ = BaseState::Uncontrolled;
 
-        TeamBaseMatch* gametype = orxonox_cast<TeamBaseMatch*>(this->getGametype());
+        TeamBaseMatch* gametype = orxonox_cast<TeamBaseMatch*>(this->getGametype().get());
         if (gametype)
         {
@@ -58,5 +58,5 @@
         this->fireEvent();
 
-        TeamDeathmatch* gametype = orxonox_cast<TeamDeathmatch*>(this->getGametype());
+        TeamDeathmatch* gametype = orxonox_cast<TeamDeathmatch*>(this->getGametype().get());
         if (!gametype)
             return;
@@ -92,6 +92,6 @@
 
         // Call this so bots stop shooting at the base after they converted it
-        for (ObjectList<PawnListener>::iterator it = ObjectList<PawnListener>::begin(); it != ObjectList<PawnListener>::end(); ++it)
-            it->destroyedPawn(this);
+        for (ObjectList<ArtificialController>::iterator it = ObjectList<ArtificialController>::begin(); it != ObjectList<ArtificialController>::end(); ++it)
+            it->abandonTarget(this);
     }
 }
