diff --git a/source/ArmarXSimulation/components/ArmarXPhysicsWorldVisualization/ArmarXPhysicsWorldVisualization.cpp b/source/ArmarXSimulation/components/ArmarXPhysicsWorldVisualization/ArmarXPhysicsWorldVisualization.cpp
index 92a7e63c47090cec15d9c9ad8deadd5cd4a8facc..1f38d2ca8c93a3540345b022d1b978b219003015 100644
--- a/source/ArmarXSimulation/components/ArmarXPhysicsWorldVisualization/ArmarXPhysicsWorldVisualization.cpp
+++ b/source/ArmarXSimulation/components/ArmarXPhysicsWorldVisualization/ArmarXPhysicsWorldVisualization.cpp
@@ -644,6 +644,10 @@ namespace armarx
             }
             ARMARX_TRACE;
 
+            // Run forward kinematics, including propagating joint values.
+            const bool updateChildren = true;
+            currentObjVisu->updatePose(updateChildren);
+
             // never use this data again
             robotDef.updated = false;
         }
@@ -924,6 +928,7 @@ namespace armarx
         // ensure consistent names
         ARMARX_DEBUG << "Setting up newly loaded robot";
         result->setName(robotName);
+        result->setPropagatingJointValuesEnabled(true);
         ARMARX_DEBUG << "adding newly loaded robot to visualization";
         VirtualRobot::SceneObject::VisualizationType visuMode = modelType;
         if (colModel)