Index: code/trunk/src/orxonox/interfaces/Tickable.h
===================================================================
--- code/trunk/src/orxonox/interfaces/Tickable.h	(revision 3323)
+++ code/trunk/src/orxonox/interfaces/Tickable.h	(revision 3325)
@@ -57,5 +57,5 @@
                 @param dt The time since the last frame in seconds
             */
-            virtual void tick(float dt) = 0;
+            virtual void tick(float dt) { }
 
         protected:
Index: code/trunk/src/orxonox/objects/Level.cc
===================================================================
--- code/trunk/src/orxonox/objects/Level.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/Level.cc	(revision 3325)
@@ -121,5 +121,5 @@
 std::cout << "Load Gametype: " << this->gametype_ << std::endl;
 
-        Gametype* rootgametype = dynamic_cast<Gametype*>(identifier->fabricate(this));
+        Gametype* rootgametype = orxonox_cast<Gametype*>(identifier->fabricate(this));
         this->setGametype(rootgametype);
 
Index: code/trunk/src/orxonox/objects/Scene.cc
===================================================================
--- code/trunk/src/orxonox/objects/Scene.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/Scene.cc	(revision 3325)
@@ -326,7 +326,7 @@
         // get the WorldEntity pointers
         WorldEntity* object0 = static_cast<WorldEntity*>(colObj0->getUserPointer());
-        assert(dynamic_cast<WorldEntity*>(object0));
+        assert(orxonox_cast<WorldEntity*>(object0));
         WorldEntity* object1 = static_cast<WorldEntity*>(colObj1->getUserPointer());
-        assert(dynamic_cast<WorldEntity*>(object1));
+        assert(orxonox_cast<WorldEntity*>(object1));
 
         // false means that bullet will assume we didn't modify the contact
Index: code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc
===================================================================
--- code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 3325)
@@ -85,10 +85,10 @@
         // Parent can either be a WorldEntity or a CompoundCollisionShape. The reason is that the
         // internal collision shape (which is compound) of a WE doesn't get synchronised.
-        CompoundCollisionShape* parentCCS = dynamic_cast<CompoundCollisionShape*>(parent);
+        CompoundCollisionShape* parentCCS = orxonox_cast<CompoundCollisionShape*>(parent);
         if (parentCCS)
             parentCCS->attach(this);
         else
         {
-            WorldEntity* parentWE = dynamic_cast<WorldEntity*>(parent);
+            WorldEntity* parentWE = orxonox_cast<WorldEntity*>(parent);
             if (parentWE)
                 parentWE->attachCollisionShape(this);
@@ -103,5 +103,5 @@
         this->parent_ = newParent;
 
-        WorldEntityCollisionShape* parentWECCS = dynamic_cast<WorldEntityCollisionShape*>(newParent);
+        WorldEntityCollisionShape* parentWECCS = orxonox_cast<WorldEntityCollisionShape*>(newParent);
         if (parentWECCS)
             this->parentID_ = parentWECCS->getWorldEntityOwner()->getObjectID();
Index: code/trunk/src/orxonox/objects/controllers/ArtificialController.cc
===================================================================
--- code/trunk/src/orxonox/objects/controllers/ArtificialController.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/controllers/ArtificialController.cc	(revision 3325)
@@ -181,5 +181,5 @@
         if (entity1->getXMLController())
         {
-            WaypointPatrolController* wpc = dynamic_cast<WaypointPatrolController*>(entity1->getXMLController());
+            WaypointPatrolController* wpc = orxonox_cast<WaypointPatrolController*>(entity1->getXMLController());
             if (wpc)
                 team1 = wpc->getTeam();
@@ -187,10 +187,10 @@
         if (entity2->getXMLController())
         {
-            WaypointPatrolController* wpc = dynamic_cast<WaypointPatrolController*>(entity2->getXMLController());
+            WaypointPatrolController* wpc = orxonox_cast<WaypointPatrolController*>(entity2->getXMLController());
             if (wpc)
                 team2 = wpc->getTeam();
         }
 
-        TeamDeathmatch* tdm = dynamic_cast<TeamDeathmatch*>(gametype);
+        TeamDeathmatch* tdm = orxonox_cast<TeamDeathmatch*>(gametype);
         if (tdm)
         {
@@ -203,5 +203,5 @@
 
         TeamBaseMatchBase* base = 0;
-        base = dynamic_cast<TeamBaseMatchBase*>(entity1);
+        base = orxonox_cast<TeamBaseMatchBase*>(entity1);
         if (base)
         {
@@ -219,5 +219,5 @@
             }
         }
-        base = dynamic_cast<TeamBaseMatchBase*>(entity2);
+        base = orxonox_cast<TeamBaseMatchBase*>(entity2);
         if (base)
         {
Index: code/trunk/src/orxonox/objects/controllers/HumanController.cc
===================================================================
--- code/trunk/src/orxonox/objects/controllers/HumanController.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/controllers/HumanController.cc	(revision 3325)
@@ -161,5 +161,5 @@
         if (HumanController::localController_s && HumanController::localController_s->controllableEntity_)
         {
-            Pawn* pawn = dynamic_cast<Pawn*>(HumanController::localController_s->controllableEntity_);
+            Pawn* pawn = orxonox_cast<Pawn*>(HumanController::localController_s->controllableEntity_);
             if (pawn)
                 pawn->kill();
@@ -196,5 +196,5 @@
     {
         if (HumanController::localController_s)
-            return dynamic_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
+            return orxonox_cast<Pawn*>(HumanController::localController_s->getControllableEntity());
         else
             return NULL;
Index: code/trunk/src/orxonox/objects/gametypes/Pong.cc
===================================================================
--- code/trunk/src/orxonox/objects/gametypes/Pong.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/gametypes/Pong.cc	(revision 3325)
@@ -144,5 +144,5 @@
         if (player && player->getController() && player->getController()->isA(Class(PongAI)))
         {
-            PongAI* ai = dynamic_cast<PongAI*>(player->getController());
+            PongAI* ai = orxonox_cast<PongAI*>(player->getController());
             ai->setPongBall(this->ball_);
         }
Index: code/trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc
===================================================================
--- code/trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/gametypes/TeamBaseMatch.cc	(revision 3325)
@@ -54,5 +54,5 @@
     bool TeamBaseMatch::allowPawnDeath(Pawn* victim, Pawn* originator)
     {
-        TeamBaseMatchBase* base = dynamic_cast<TeamBaseMatchBase*>(victim);
+        TeamBaseMatchBase* base = orxonox_cast<TeamBaseMatchBase*>(victim);
         if (base)
         {
@@ -87,5 +87,5 @@
     bool TeamBaseMatch::allowPawnDamage(Pawn* victim, Pawn* originator)
     {
-        TeamBaseMatchBase* base = dynamic_cast<TeamBaseMatchBase*>(victim);
+        TeamBaseMatchBase* base = orxonox_cast<TeamBaseMatchBase*>(victim);
         if (base)
         {
Index: code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc
===================================================================
--- code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/gametypes/TeamDeathmatch.cc	(revision 3325)
@@ -126,5 +126,5 @@
             if ((*it)->isA(Class(TeamSpawnPoint)))
             {
-                TeamSpawnPoint* tsp = dynamic_cast<TeamSpawnPoint*>(*it);
+                TeamSpawnPoint* tsp = orxonox_cast<TeamSpawnPoint*>(*it);
                 if (tsp && static_cast<int>(tsp->getTeamNumber()) != desiredTeamNr)
                 {
@@ -171,5 +171,5 @@
                     if ((*it)->isA(Class(TeamColourable)))
                     {
-                        TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
+                        TeamColourable* tc = orxonox_cast<TeamColourable*>(*it);
                         tc->setTeamColour(this->teamcolours_[it_player->second]);
                     }
Index: code/trunk/src/orxonox/objects/infos/PlayerInfo.cc
===================================================================
--- code/trunk/src/orxonox/objects/infos/PlayerInfo.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/infos/PlayerInfo.cc	(revision 3325)
@@ -186,5 +186,5 @@
         {
             Synchronisable* temp = Synchronisable::getSynchronisable(this->controllableEntityID_);
-            ControllableEntity* entity = dynamic_cast<ControllableEntity*>(temp);
+            ControllableEntity* entity = orxonox_cast<ControllableEntity*>(temp);
             this->startControl(entity);
         }
@@ -199,5 +199,5 @@
         if (this->gtinfoID_ != OBJECTID_UNKNOWN)
         {
-            this->gtinfo_ = dynamic_cast<GametypeInfo*>(Synchronisable::getSynchronisable(this->gtinfoID_));
+            this->gtinfo_ = orxonox_cast<GametypeInfo*>(Synchronisable::getSynchronisable(this->gtinfoID_));
 
             if (!this->gtinfo_)
Index: code/trunk/src/orxonox/objects/items/Engine.cc
===================================================================
--- code/trunk/src/orxonox/objects/items/Engine.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/items/Engine.cc	(revision 3325)
@@ -138,5 +138,5 @@
             Synchronisable* object = Synchronisable::getSynchronisable(this->shipID_);
             if (object)
-                this->addToSpaceShip(dynamic_cast<SpaceShip*>(object));
+                this->addToSpaceShip(orxonox_cast<SpaceShip*>(object));
         }
     }
Index: code/trunk/src/orxonox/objects/pickup/PickupCollection.cc
===================================================================
--- code/trunk/src/orxonox/objects/pickup/PickupCollection.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/pickup/PickupCollection.cc	(revision 3325)
@@ -66,5 +66,5 @@
             Identifier* ident = Class(UsableItem);
             if(this->currentUsable_ == NULL && item->isA(ident))
-                this->currentUsable_ = dynamic_cast<UsableItem*>(item);
+                this->currentUsable_ = orxonox_cast<UsableItem*>(item);
 
             this->items_.insert( std::pair<std::string, BaseItem*> (item->getPickupIdentifier(), item) );
@@ -336,5 +336,5 @@
         {
             if ((*it).second->isA(ident))
-                ret.push_back(dynamic_cast<EquipmentItem*>((*it).second));
+                ret.push_back(orxonox_cast<EquipmentItem*>((*it).second));
         }
 
@@ -353,5 +353,5 @@
         {
             if ((*it).second->isA(ident))
-                ret.push_back(dynamic_cast<PassiveItem*>((*it).second));
+                ret.push_back(orxonox_cast<PassiveItem*>((*it).second));
         }
 
@@ -370,5 +370,5 @@
         {
             if ((*it).second->isA(ident))
-                ret.push_back(dynamic_cast<UsableItem*>((*it).second));
+                ret.push_back(orxonox_cast<UsableItem*>((*it).second));
         }
 
Index: code/trunk/src/orxonox/objects/pickup/PickupSpawner.cc
===================================================================
--- code/trunk/src/orxonox/objects/pickup/PickupSpawner.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/pickup/PickupSpawner.cc	(revision 3325)
@@ -86,5 +86,5 @@
         //  = less delays while running
         BaseObject* newObject = this->itemTemplate_->getBaseclassIdentifier()->fabricate(this);
-        BaseItem* asItem = dynamic_cast<BaseItem*>(newObject);
+        BaseItem* asItem = orxonox_cast<BaseItem*>(newObject);
         if (asItem)
         {
@@ -154,5 +154,5 @@
         {
             BaseObject* newObject = this->itemTemplate_->getBaseclassIdentifier()->fabricate(this);
-            BaseItem* asItem = dynamic_cast<BaseItem*>(newObject);
+            BaseItem* asItem = orxonox_cast<BaseItem*>(newObject);
             if (asItem)
             {
Index: code/trunk/src/orxonox/objects/quest/QuestManager.cc
===================================================================
--- code/trunk/src/orxonox/objects/quest/QuestManager.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/quest/QuestManager.cc	(revision 3325)
@@ -239,5 +239,5 @@
             return NULL;
         }
-        player = dynamic_cast<PlayerInfo*>(obj);
+        player = orxonox_cast<PlayerInfo*>(obj);
     
         QuestContainer* root = NULL;
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.cc	(revision 3325)
@@ -126,5 +126,5 @@
                 dmg = this->owner_->getPickups().processModifiers(ModifierType::Damage, dmg, false);
 
-            Pawn* victim = dynamic_cast<Pawn*>(otherObject);
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
             if (victim)
                 victim->damage(dmg, this->owner_);
Index: code/trunk/src/orxonox/objects/worldentities/Attacher.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/Attacher.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/Attacher.cc	(revision 3325)
@@ -111,5 +111,5 @@
             return;
 
-        WorldEntity* entity = dynamic_cast<WorldEntity*>(object);
+        WorldEntity* entity = orxonox_cast<WorldEntity*>(object);
         if (entity && entity->getName() == this->targetname_)
         {
Index: code/trunk/src/orxonox/objects/worldentities/BigExplosion.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/BigExplosion.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/BigExplosion.cc	(revision 3325)
@@ -99,37 +99,37 @@
         Identifier* idDE1 = Class(MovableEntity);
         BaseObject* oDE1 = idDE1->fabricate(this);
-        this->debrisEntity1_ = dynamic_cast<MovableEntity*>(oDE1);
+        this->debrisEntity1_ = orxonox_cast<MovableEntity*>(oDE1);
 
         Identifier* idDE2 = Class(MovableEntity);
         BaseObject* oDE2 = idDE2->fabricate(this);
-        this->debrisEntity2_ = dynamic_cast<MovableEntity*>(oDE2);
+        this->debrisEntity2_ = orxonox_cast<MovableEntity*>(oDE2);
 
         Identifier* idDE3 = Class(MovableEntity);
         BaseObject* oDE3 = idDE3 ->fabricate(this);
-        this->debrisEntity3_ = dynamic_cast<MovableEntity*>(oDE3);
+        this->debrisEntity3_ = orxonox_cast<MovableEntity*>(oDE3);
 
         Identifier* idDE4 = Class(MovableEntity);
         BaseObject* oDE4 = idDE4->fabricate(this);
-        this->debrisEntity4_ = dynamic_cast<MovableEntity*>(oDE4);
+        this->debrisEntity4_ = orxonox_cast<MovableEntity*>(oDE4);
 
         Identifier* idD1 = Class(Model);
         BaseObject* oD1 = idD1->fabricate(this);
-        this->debris1_ = dynamic_cast<Model*>(oD1);
+        this->debris1_ = orxonox_cast<Model*>(oD1);
 
         Identifier* idD2 = Class(Model);
         BaseObject* oD2 = idD2->fabricate(this);
-        this->debris2_ = dynamic_cast<Model*>(oD2);
+        this->debris2_ = orxonox_cast<Model*>(oD2);
 
         Identifier* idD3 = Class(Model);
         BaseObject* oD3 = idD3->fabricate(this);
-        this->debris3_ = dynamic_cast<Model*>(oD3);
+        this->debris3_ = orxonox_cast<Model*>(oD3);
 
         Identifier* idD4 = Class(Model);
         BaseObject* oD4 = idD4->fabricate(this);
-        this->debris4_ = dynamic_cast<Model*>(oD4);
+        this->debris4_ = orxonox_cast<Model*>(oD4);
 
         Identifier* id6 = Class(StaticEntity);
         BaseObject* object4 = id6->fabricate(this);
-        this->explosion_ = dynamic_cast<StaticEntity*>(object4);
+        this->explosion_ = orxonox_cast<StaticEntity*>(object4);
 
         this->debrisSmoke1_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
@@ -202,18 +202,18 @@
             Identifier* idf1 = Class(Model);
             BaseObject* obj1 = idf1->fabricate(this);
-            Model* part1 = dynamic_cast<Model*>(obj1);
+            Model* part1 = orxonox_cast<Model*>(obj1);
 
 
             Identifier* idf2 = Class(Model);
             BaseObject* obj2 = idf2->fabricate(this);
-            Model* part2 = dynamic_cast<Model*>(obj2);
+            Model* part2 = orxonox_cast<Model*>(obj2);
 
             Identifier* idf3 = Class(MovableEntity);
             BaseObject* obj3 = idf3->fabricate(this);
-            MovableEntity* partEntity1 = dynamic_cast<MovableEntity*>(obj3);
+            MovableEntity* partEntity1 = orxonox_cast<MovableEntity*>(obj3);
 
             Identifier* idf4 = Class(MovableEntity);
             BaseObject* obj4 = idf4->fabricate(this);
-            MovableEntity* partEntity2 = dynamic_cast<MovableEntity*>(obj4);
+            MovableEntity* partEntity2 = orxonox_cast<MovableEntity*>(obj4);
 
             partEntity1->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(10,100));
Index: code/trunk/src/orxonox/objects/worldentities/ControllableEntity.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 3325)
@@ -267,5 +267,5 @@
         if (this->playerID_ != OBJECTID_UNKNOWN)
         {
-            this->player_ = dynamic_cast<PlayerInfo*>(Synchronisable::getSynchronisable(this->playerID_));
+            this->player_ = orxonox_cast<PlayerInfo*>(Synchronisable::getSynchronisable(this->playerID_));
             if (this->player_ && (this->player_->getControllableEntity() != this))
                 this->player_->startControl(this);
Index: code/trunk/src/orxonox/objects/worldentities/MovableEntity.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/MovableEntity.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/MovableEntity.cc	(revision 3325)
@@ -76,5 +76,5 @@
         if (GameMode::isMaster() && enableCollisionDamage_)
         {
-            Pawn* victim = dynamic_cast<Pawn*>(otherObject);
+            Pawn* victim = orxonox_cast<Pawn*>(otherObject);
             if (victim)
             {
Index: code/trunk/src/orxonox/objects/worldentities/PongBall.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/PongBall.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/PongBall.cc	(revision 3325)
@@ -231,7 +231,7 @@
             this->bat_ = new PongBat*[2];
         if (this->batID_[0] != OBJECTID_UNKNOWN)
-            this->bat_[0] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0]));
+            this->bat_[0] = orxonox_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[0]));
         if (this->batID_[1] != OBJECTID_UNKNOWN)
-            this->bat_[1] = dynamic_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
+            this->bat_[1] = orxonox_cast<PongBat*>(Synchronisable::getSynchronisable(this->batID_[1]));
     }
 }
Index: code/trunk/src/orxonox/objects/worldentities/PongCenterpoint.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/PongCenterpoint.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/PongCenterpoint.cc	(revision 3325)
@@ -73,5 +73,5 @@
         if (this->getGametype() && this->getGametype()->isA(Class(Pong)))
         {
-            Pong* pong_gametype = dynamic_cast<Pong*>(this->getGametype());
+            Pong* pong_gametype = orxonox_cast<Pong*>(this->getGametype());
             pong_gametype->setCenterpoint(this);
         }
Index: code/trunk/src/orxonox/objects/worldentities/WorldEntity.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 3325)
@@ -210,5 +210,5 @@
         if (this->parentID_ != OBJECTID_UNKNOWN)
         {
-            WorldEntity* parent = dynamic_cast<WorldEntity*>(Synchronisable::getSynchronisable(this->parentID_));
+            WorldEntity* parent = orxonox_cast<WorldEntity*>(Synchronisable::getSynchronisable(this->parentID_));
             if (parent)
                 this->attachToParent(parent);
Index: code/trunk/src/orxonox/objects/worldentities/pawns/Destroyer.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/pawns/Destroyer.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/pawns/Destroyer.cc	(revision 3325)
@@ -40,5 +40,5 @@
         RegisterObject(Destroyer);
 
-        UnderAttack* gametype = dynamic_cast<UnderAttack*>(this->getGametype());
+        UnderAttack* gametype = orxonox_cast<UnderAttack*>(this->getGametype());
         if (gametype)
         {
Index: code/trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/pawns/SpaceShip.cc	(revision 3325)
@@ -198,5 +198,5 @@
                 {
                     BaseObject* object = identifier->fabricate(this);
-                    this->engine_ = dynamic_cast<Engine*>(object);
+                    this->engine_ = orxonox_cast<Engine*>(object);
 
                     if (this->engine_)
Index: code/trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/pawns/TeamBaseMatchBase.cc	(revision 3325)
@@ -45,5 +45,5 @@
         this->state_ = BaseState::Uncontrolled;
 
-        TeamBaseMatch* gametype = dynamic_cast<TeamBaseMatch*>(this->getGametype());
+        TeamBaseMatch* gametype = orxonox_cast<TeamBaseMatch*>(this->getGametype());
         if (gametype)
         {
@@ -58,5 +58,5 @@
         this->fireEvent();
 
-        TeamDeathmatch* gametype = dynamic_cast<TeamDeathmatch*>(this->getGametype());
+        TeamDeathmatch* gametype = orxonox_cast<TeamDeathmatch*>(this->getGametype());
         if (!gametype)
             return;
@@ -84,5 +84,5 @@
             if ((*it)->isA(Class(TeamColourable)))
             {
-                TeamColourable* tc = dynamic_cast<TeamColourable*>(*it);
+                TeamColourable* tc = orxonox_cast<TeamColourable*>(*it);
                 tc->setTeamColour(colour);
             }
Index: code/trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	(revision 3325)
@@ -85,5 +85,5 @@
         DistanceTrigger::triggered(bIsTriggered);
 
-        Asteroids* gametype = dynamic_cast<Asteroids*>(this->getGametype());
+        Asteroids* gametype = orxonox_cast<Asteroids*>(this->getGametype());
         if (gametype)
         {
Index: code/trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
===================================================================
--- code/trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	(revision 3323)
+++ code/trunk/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	(revision 3325)
@@ -120,5 +120,5 @@
     for (ClassTreeMaskObjectIterator it = this->targetMask_.begin(); it != this->targetMask_.end(); ++it)
     {
-      WorldEntity* entity = dynamic_cast<WorldEntity*>(*it);
+      WorldEntity* entity = orxonox_cast<WorldEntity*>(*it);
       if (!entity)
         continue;
@@ -131,5 +131,5 @@
         if(this->isForPlayer())
         {
-          Pawn* player = dynamic_cast<Pawn*>(entity);
+          Pawn* player = orxonox_cast<Pawn*>(entity);
           this->setTriggeringPlayer(player);
         }
Index: code/trunk/src/orxonox/overlays/hud/AnnounceMessage.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/AnnounceMessage.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/AnnounceMessage.cc	(revision 3325)
@@ -56,5 +56,5 @@
         SUPER(AnnounceMessage, changedOwner);
 
-        this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+        this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/DeathMessage.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/DeathMessage.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/DeathMessage.cc	(revision 3325)
@@ -56,5 +56,5 @@
         SUPER(DeathMessage, changedOwner);
 
-        this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+        this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/GametypeStatus.cc	(revision 3325)
@@ -86,5 +86,5 @@
         SUPER(GametypeStatus, changedOwner);
 
-        this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+        this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/HUDHealthBar.cc	(revision 3325)
@@ -94,5 +94,5 @@
         SUPER(HUDHealthBar, changedOwner);
 
-        this->owner_ = dynamic_cast<Pawn*>(this->getOwner());
+        this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
     }
 
Index: code/trunk/src/orxonox/overlays/hud/HUDRadar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDRadar.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/HUDRadar.cc	(revision 3325)
@@ -164,5 +164,5 @@
         SUPER(HUDRadar, changedOwner);
 
-        this->owner_ = dynamic_cast<Pawn*>(this->getOwner());
+        this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/HUDSpeedBar.cc	(revision 3325)
@@ -65,5 +65,5 @@
         SUPER(HUDSpeedBar, changedOwner);
 
-        this->owner_ = dynamic_cast<SpaceShip*>(this->getOwner());
+        this->owner_ = orxonox_cast<SpaceShip*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/HUDTimer.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/HUDTimer.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/HUDTimer.cc	(revision 3325)
@@ -68,5 +68,5 @@
         SUPER(HUDTimer, changedOwner);
 
-        this->owner_ = dynamic_cast<ControllableEntity*>(this->getOwner());
+        this->owner_ = orxonox_cast<ControllableEntity*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/KillMessage.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/KillMessage.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/KillMessage.cc	(revision 3325)
@@ -56,5 +56,5 @@
         SUPER(KillMessage, changedOwner);
 
-        this->owner_ = dynamic_cast<PlayerInfo*>(this->getOwner());
+        this->owner_ = orxonox_cast<PlayerInfo*>(this->getOwner());
     }
 }
Index: code/trunk/src/orxonox/overlays/hud/PongScore.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/PongScore.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/PongScore.cc	(revision 3325)
@@ -133,5 +133,5 @@
 
         if (this->getOwner() && this->getOwner()->getGametype())
-            this->owner_ = dynamic_cast<Pong*>(this->getOwner()->getGametype());
+            this->owner_ = orxonox_cast<Pong*>(this->getOwner()->getGametype());
         else
             this->owner_ = 0;
Index: code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/TeamBaseMatchScore.cc	(revision 3325)
@@ -118,5 +118,5 @@
 
         if (this->getOwner() && this->getOwner()->getGametype())
-            this->owner_ = dynamic_cast<TeamBaseMatch*>(this->getOwner()->getGametype());
+            this->owner_ = orxonox_cast<TeamBaseMatch*>(this->getOwner()->getGametype());
         else
             this->owner_ = 0;
Index: code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc
===================================================================
--- code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/hud/UnderAttackHealthBar.cc	(revision 3325)
@@ -73,10 +73,10 @@
         SUPER(UnderAttackHealthBar, changedOwner);
 
-        PlayerInfo* player = dynamic_cast<PlayerInfo*>(this->getOwner());
+        PlayerInfo* player = orxonox_cast<PlayerInfo*>(this->getOwner());
         if (player)
         {
             this->owner_ = player;
 
-            UnderAttack* ua = dynamic_cast<UnderAttack*>(player->getGametype());
+            UnderAttack* ua = orxonox_cast<UnderAttack*>(player->getGametype());
             if (ua)
             {
Index: code/trunk/src/orxonox/overlays/map/Map.cc
===================================================================
--- code/trunk/src/orxonox/overlays/map/Map.cc	(revision 3323)
+++ code/trunk/src/orxonox/overlays/map/Map.cc	(revision 3325)
@@ -359,5 +359,5 @@
         //COUT(0) << "shipptr" << this->getOwner()->getReverseCamera() << std::endl;
 
-        ControllableEntity* entity = dynamic_cast<ControllableEntity*>(this->getOwner());
+        ControllableEntity* entity = orxonox_cast<ControllableEntity*>(this->getOwner());
         if(entity && entity->getReverseCamera())
         {
