Index: code/branches/presentation2012merge/src/libraries/core/Super.h
===================================================================
--- code/branches/presentation2012merge/src/libraries/core/Super.h	(revision 9278)
+++ code/branches/presentation2012merge/src/libraries/core/Super.h	(revision 9279)
@@ -398,5 +398,5 @@
                     inline void operator()( SUPER_CALL_ARGUMENTS##hasarguments(__VA_ARGS__) ) \
                     { \
-                        (dynamic_cast<T*>(object))->T:: functionname
+                        (orxonox_cast<T*>(object))->T:: functionname
 
         /*
@@ -508,5 +508,5 @@
                 inline void operator()( SUPER_CALL_ARGUMENTS##hasarguments(__VA_ARGS__) )
                 {
-                    (dynamic_cast<T*>(object))->T:: functionname ( Call the function with it's arguments );
+                    (orxonox_cast<T*>(object))->T:: functionname ( Call the function with it's arguments );
                 }
 
Index: code/branches/presentation2012merge/src/libraries/core/XMLPort.h
===================================================================
--- code/branches/presentation2012merge/src/libraries/core/XMLPort.h	(revision 9278)
+++ code/branches/presentation2012merge/src/libraries/core/XMLPort.h	(revision 9279)
@@ -197,5 +197,5 @@
         ClassIdentifier<classname>::getIdentifier()->addXMLPortParamContainer(paramname, containername); \
     } \
-    containername->port(dynamic_cast<BaseObject*>(this), object, xmlelement, mode)
+    containername->port(orxonox_cast<BaseObject*>(this), object, xmlelement, mode)
 
 // --------------------
Index: code/branches/presentation2012merge/src/modules/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/overlays/hud/HUDNavigation.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/overlays/hud/HUDNavigation.cc	(revision 9279)
@@ -427,5 +427,5 @@
 bool HUDNavigation::showObject(RadarViewable* rv)
 {
-    if ( rv == dynamic_cast<RadarViewable*> ( this->getOwner() ) )
+    if ( rv == orxonox_cast<RadarViewable*> ( this->getOwner() ) )
         return false;
     assert( rv->getWorldEntity() );
Index: code/branches/presentation2012merge/src/modules/overlays/hud/HUDRadar.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/overlays/hud/HUDRadar.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/overlays/hud/HUDRadar.cc	(revision 9279)
@@ -92,5 +92,5 @@
     void HUDRadar::addObject(RadarViewable* object)
     {
-        if (object == dynamic_cast<RadarViewable*>(this->owner_))
+        if (object == orxonox_cast<RadarViewable*>(this->owner_))
             return;
         if( showObject(object) == false ) //do not show objects that are "invisible" or "radar invisible"
@@ -189,5 +189,5 @@
     bool HUDRadar::showObject(RadarViewable* rv)
     {
-        if ( rv == dynamic_cast<RadarViewable*> ( this->getOwner() ) )
+        if ( rv == orxonox_cast<RadarViewable*> ( this->getOwner() ) )
             return false;
         assert( rv->getWorldEntity() );
Index: code/branches/presentation2012merge/src/modules/pickup/Pickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/Pickup.cc	(revision 9279)
@@ -210,5 +210,5 @@
         SUPER(Pickup, clone, item);
 
-        Pickup* pickup = dynamic_cast<Pickup*>(item);
+        Pickup* pickup = orxonox_cast<Pickup*>(item);
         pickup->setActivationTypeDirect(this->getActivationTypeDirect());
         pickup->setDurationTypeDirect(this->getDurationTypeDirect());
Index: code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupCollection.cc	(revision 9279)
@@ -79,5 +79,5 @@
         }
         this->pickups_.clear();
-        
+
         if(this->pickupCollectionIdentifier_ != NULL)
             delete this->pickupCollectionIdentifier_;
@@ -195,5 +195,5 @@
             return;
 
-        // If at least all the enabled pickups of this PickupCollection are no longer picked up. 
+        // If at least all the enabled pickups of this PickupCollection are no longer picked up.
         if(this->pickedUpCounter_ <= this->disabledCounter_ && this->isPickedUp())
             this->Pickupable::destroy();
@@ -218,5 +218,5 @@
         SUPER(PickupCollection, clone, item);
 
-        PickupCollection* pickup = dynamic_cast<PickupCollection*>(item);
+        PickupCollection* pickup = orxonox_cast<PickupCollection*>(item);
         // Clone all Pickupables this PickupCollection consist of.
         for(std::vector<CollectiblePickup*>::iterator it = this->pickups_.begin(); it != this->pickups_.end(); it++)
@@ -297,5 +297,5 @@
         This is used internally by the CollectiblePickup class.
     @param changed
-        The value the used status has changed to. 
+        The value the used status has changed to.
     */
     void PickupCollection::pickupChangedUsed(bool changed)
Index: code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/PickupSpawner.cc	(revision 9279)
@@ -199,5 +199,5 @@
 
                 Vector3 distance = it->getWorldPosition() - this->getWorldPosition();
-                PickupCarrier* carrier = dynamic_cast<PickupCarrier*>(*it);
+                PickupCarrier* carrier = orxonox_cast<PickupCarrier*>(*it);
                 // If a PickupCarrier, that fits the target-range of the Pickupable spawned by this PickupSpawner, is in trigger-distance and the carrier is not blocked.
                 if(distance.length() < this->triggerDistance_ && carrier != NULL && this->blocked_.find(carrier) == this->blocked_.end())
@@ -303,5 +303,5 @@
             orxout(verbose, context::pickups) << "PickupSpawner (&" << this << ") triggered and active." << endl;
 
-            PickupCarrier* carrier = dynamic_cast<PickupCarrier*>(pawn);
+            PickupCarrier* carrier = orxonox_cast<PickupCarrier*>(pawn);
             assert(carrier);
 
Index: code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DamageBoostPickup.cc	(revision 9279)
@@ -180,5 +180,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        SpaceShip* ship = dynamic_cast<SpaceShip*>(carrier);
+        SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
 
         if(ship == NULL)
@@ -203,5 +203,5 @@
         SUPER(DamageBoostPickup, clone, item);
 
-        DamageBoostPickup* pickup = dynamic_cast<DamageBoostPickup*>(item);
+        DamageBoostPickup* pickup = orxonox_cast<DamageBoostPickup*>(item);
         pickup->setDuration(this->getDuration());
         pickup->setDamageMultiplier(this->getDamageMultiplier());
Index: code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/DronePickup.cc	(revision 9279)
@@ -144,5 +144,5 @@
 
                 Controller* controller = drone->getController();
-                DroneController* droneController = dynamic_cast<DroneController*>(controller);
+                DroneController* droneController = orxonox_cast<DroneController*>(controller);
                 if(droneController != NULL)
                 {
@@ -175,5 +175,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
         if(pawn == NULL)
@@ -198,5 +198,5 @@
         SUPER(DronePickup, clone, item);
 
-        DronePickup* pickup = dynamic_cast<DronePickup*>(item);
+        DronePickup* pickup = orxonox_cast<DronePickup*>(item);
         pickup->setDroneTemplate(this->getDroneTemplate());
 
Index: code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/HealthPickup.cc	(revision 9279)
@@ -230,5 +230,5 @@
             {
                 PickupCarrier* carrier = this->getCarrier();
-                Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+                Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
                 if(pawn == NULL)
@@ -264,5 +264,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
         if(pawn == NULL)
@@ -285,5 +285,5 @@
         SUPER(HealthPickup, clone, item);
 
-        HealthPickup* pickup = dynamic_cast<HealthPickup*>(item);
+        HealthPickup* pickup = orxonox_cast<HealthPickup*>(item);
         pickup->setHealth(this->getHealth());
         pickup->setHealthRate(this->getHealthRate());
Index: code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/InvisiblePickup.cc	(revision 9279)
@@ -159,5 +159,5 @@
         SUPER(InvisiblePickup, clone, item);
 
-        InvisiblePickup* pickup = dynamic_cast<InvisiblePickup*>(item);
+        InvisiblePickup* pickup = orxonox_cast<InvisiblePickup*>(item);
         pickup->setDuration(this->getDuration());
         pickup->initializeIdentifier();
@@ -202,5 +202,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
         if(pawn == NULL)
Index: code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/MetaPickup.cc	(revision 9279)
@@ -172,5 +172,5 @@
         SUPER(MetaPickup, clone, item);
 
-        MetaPickup* pickup = dynamic_cast<MetaPickup*>(item);
+        MetaPickup* pickup = orxonox_cast<MetaPickup*>(item);
         pickup->setMetaTypeDirect(this->getMetaTypeDirect());
 
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShieldPickup.cc	(revision 9279)
@@ -177,5 +177,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
         if(pawn == NULL)
@@ -199,5 +199,5 @@
         SUPER(ShieldPickup, clone, item);
 
-        ShieldPickup* pickup = dynamic_cast<ShieldPickup*>(item);
+        ShieldPickup* pickup = orxonox_cast<ShieldPickup*>(item);
         pickup->setDuration(this->getDuration());
         pickup->setShieldAbsorption(this->getShieldAbsorption());
Index: code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/ShrinkPickup.cc	(revision 9279)
@@ -148,5 +148,5 @@
     {
         SUPER(ShrinkPickup, changedPickedUp);
-        
+
         if(!this->isPickedUp() && this->isActive_)
         {
@@ -271,5 +271,5 @@
 
                 bool destroy = false;
-                
+
                 // Stop shrinking if the desired size is reached.
                 if(this->timeRemainig_ <= 0.0f)
@@ -314,5 +314,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        Pawn* pawn = dynamic_cast<Pawn*>(carrier);
+        Pawn* pawn = orxonox_cast<Pawn*>(carrier);
 
         return pawn;
@@ -331,5 +331,5 @@
 
         SUPER(ShrinkPickup, clone, item);
-        ShrinkPickup* pickup = dynamic_cast<ShrinkPickup*>(item);
+        ShrinkPickup* pickup = orxonox_cast<ShrinkPickup*>(item);
         pickup->setShrinkFactor(this->getShrinkFactor());
         pickup->setDuration(this->getDuration());
Index: code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/pickup/items/SpeedPickup.cc	(revision 9279)
@@ -176,5 +176,5 @@
     {
         PickupCarrier* carrier = this->getCarrier();
-        SpaceShip* ship = dynamic_cast<SpaceShip*>(carrier);
+        SpaceShip* ship = orxonox_cast<SpaceShip*>(carrier);
 
         if(ship == NULL)
@@ -199,5 +199,5 @@
         SUPER(SpeedPickup, clone, item);
 
-        SpeedPickup* pickup = dynamic_cast<SpeedPickup*>(item);
+        SpeedPickup* pickup = orxonox_cast<SpeedPickup*>(item);
         pickup->setDuration(this->getDuration());
         pickup->setSpeedAdd(this->getSpeedAdd());
Index: code/branches/presentation2012merge/src/modules/weapons/RocketController.cc
===================================================================
--- code/branches/presentation2012merge/src/modules/weapons/RocketController.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/modules/weapons/RocketController.cc	(revision 9279)
@@ -53,5 +53,5 @@
         this->rocket_ = new SimpleRocket(this);
         this->rocket_->setController(this);
-        this->setControllableEntity(dynamic_cast<ControllableEntity*> (this->rocket_));
+        this->setControllableEntity(orxonox_cast<ControllableEntity*>(this->rocket_));
     }
 
Index: code/branches/presentation2012merge/src/orxonox/controllers/NewHumanController.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/controllers/NewHumanController.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/controllers/NewHumanController.cc	(revision 9279)
@@ -298,5 +298,5 @@
         //Used in HumanController for formationFlight
         HumanController::hit(originator,contactpoint,damage);
-        
+
         if (this->showDamageOverlay_ && !this->controlPaused_ && this->controllableEntity_ && !this->controllableEntity_->isInMouseLook())
         {
@@ -397,5 +397,5 @@
                 try
                 {
-                    wePtr = dynamic_cast<WorldEntity*>(Ogre::any_cast<OrxonoxClass*>(itr->movable->getUserAny()));
+                    wePtr = orxonox_cast<WorldEntity*>(Ogre::any_cast<OrxonoxClass*>(itr->movable->getUserAny()));
                 }
                 catch (...)
Index: code/branches/presentation2012merge/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/gamestates/GSRoot.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/gamestates/GSRoot.cc	(revision 9279)
@@ -76,6 +76,7 @@
         for (ObjectList<BaseObject>::iterator it = ObjectList<BaseObject>::begin(); it; ++it)
         {
-            if (dynamic_cast<Synchronisable*>(*it))
-                orxout(debug_output) << "object: " << it->getIdentifier()->getName() << " id: " << dynamic_cast<Synchronisable*>(*it)->getObjectID() << endl;
+            Synchronisable* synchronisable = orxonox_cast<Synchronisable*>(*it);
+            if (synchronisable)
+                orxout(debug_output) << "object: " << it->getIdentifier()->getName() << " id: " << synchronisable->getObjectID() << endl;
             else
                 orxout(debug_output) << "object: " << it->getIdentifier()->getName() << endl;
Index: code/branches/presentation2012merge/src/orxonox/gametypes/Dynamicmatch.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/gametypes/Dynamicmatch.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/gametypes/Dynamicmatch.cc	(revision 9279)
@@ -151,5 +151,5 @@
 
                 //Give new pig boost
-                SpaceShip* spaceship = dynamic_cast<SpaceShip*>(victim);
+                SpaceShip* spaceship = orxonox_cast<SpaceShip*>(victim);
                 this->grantPigBoost(spaceship);
             }
@@ -245,5 +245,5 @@
                 }
                 //Give new pig boost
-                SpaceShip* spaceship = dynamic_cast<SpaceShip*>(victim);
+                SpaceShip* spaceship = orxonox_cast<SpaceShip*>(victim);
                 this->grantPigBoost(spaceship);
             }
@@ -426,5 +426,5 @@
     {
         std::map<PlayerInfo*, int>::const_iterator it_player = this->playerParty_.find(player);
-        Pawn* pawn = dynamic_cast<Pawn*>(player->getControllableEntity());
+        Pawn* pawn = orxonox_cast<Pawn*>(player->getControllableEntity());
             if (pawn)
             {
Index: code/branches/presentation2012merge/src/orxonox/gametypes/LastManStanding.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/gametypes/LastManStanding.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/gametypes/LastManStanding.cc	(revision 9279)
@@ -211,5 +211,5 @@
             if(!player->getControllableEntity())
                 return;
-            Pawn* pawn = dynamic_cast<Pawn*>(player->getControllableEntity());
+            Pawn* pawn = orxonox_cast<Pawn*>(player->getControllableEntity());
             if(!pawn)
                 return;
Index: code/branches/presentation2012merge/src/orxonox/gametypes/LastTeamStanding.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/gametypes/LastTeamStanding.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/gametypes/LastTeamStanding.cc	(revision 9279)
@@ -283,5 +283,5 @@
             if(!player->getControllableEntity())
                 return;
-            Pawn* pawn = dynamic_cast<Pawn*>(player->getControllableEntity());
+            Pawn* pawn = orxonox_cast<Pawn*>(player->getControllableEntity());
             if(!pawn)
                 return;
Index: code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/interfaces/Pickupable.cc	(revision 9279)
@@ -338,5 +338,5 @@
         this->clone(item);
 
-        Pickupable* pickup = dynamic_cast<Pickupable*>(item);
+        Pickupable* pickup = orxonox_cast<Pickupable*>(item);
 
         orxout(verbose, context::pickups) << "Pickupable (&" << this << ") cloned. Clone is new Pickupable (&" << pickup << ")." << endl;
Index: code/branches/presentation2012merge/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/presentation2012merge/src/orxonox/worldentities/ControllableEntity.cc	(revision 9278)
+++ code/branches/presentation2012merge/src/orxonox/worldentities/ControllableEntity.cc	(revision 9279)
@@ -266,5 +266,5 @@
                 this->cameraPositionRootNode_->_update(true, false); // update the camera node because otherwise the camera will drag back in position which looks strange
 
-                NewHumanController* controller = dynamic_cast<NewHumanController*>(this->getController());
+                NewHumanController* controller = orxonox_cast<NewHumanController*>(this->getController());
                 if (controller)
                     controller->centerCursor();
