diff --git a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
index 97633b788dcfae4cd93d6a1fd7a72850a9a009b1..a1fbd970fe95a28c8d3671d5f6541b9b5f258ece 100644
--- a/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/client/common/VirtualRobotReader.cpp
@@ -6,6 +6,7 @@
 #include <VirtualRobot/XML/RobotIO.h>
 
 #include "ArmarXCore/core/PackagePath.h"
+#include "ArmarXCore/core/logging/Logging.h"
 #include "ArmarXCore/core/system/ArmarXDataPath.h"
 #include "ArmarXCore/core/system/cmake/CMakePackageFinder.h"
 
@@ -41,6 +42,7 @@ namespace armarx::armem::robot_state
         const auto robotState = queryState(robotDescription, timestamp);
         if (not robotState)
         {
+            ARMARX_WARNING << "Querying robot state failed!";
             return false;
         }
 
@@ -65,8 +67,11 @@ namespace armarx::armem::robot_state
         const std::string xmlFilename = ArmarXDataPath::resolvePath(description->xml.serialize().path);
         ARMARX_INFO << "Loading (virtual) robot '" << description->name << "' from XML file '" << xmlFilename << "'";
 
-        return VirtualRobot::RobotIO::loadRobot(xmlFilename, loadMode);
+        auto robot = VirtualRobot::RobotIO::loadRobot(xmlFilename, loadMode);
 
+        synchronizeRobot(*robot, timestamp);
+
+        return robot;
     }