diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
index 4ddd9457f3ac7d684bb86c15b080040985157342..8b6d4e525f4710dde4f6384af5ce89fe99e0e372 100644
--- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
+++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp
@@ -135,11 +135,11 @@ namespace armarx::armem::articulated_object
 
     void Reader::synchronize(ArticulatedObject& obj, const armem::Time& timestamp)
     {
-        auto state = queryState(obj.description, timestamp);
+        auto state = queryState(obj.instance, timestamp);
 
         if (not state) /* c++20 [[unlikely]] */
         {
-            ARMARX_WARNING << "Could not synchronize object " << obj.description.name;
+            ARMARX_WARNING << "Could not synchronize object " << obj.instance;
             return;
         }
 
diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp
index dcd44d6739bfaa3e211a79721a330cc10b4751fc..05506152012d6527110801adb5bfe5b015a42d1b 100644
--- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp
+++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp
@@ -104,6 +104,8 @@ namespace armarx::armem::articulated_object
 
     std::optional<armem::MemoryID> Writer::storeOrGetClass(const ArticulatedObject& obj)
     {
+        ARMARX_TRACE;
+
         const auto objectId = knownObjects.find(obj.description.name);
 
         // check if exists
@@ -187,7 +189,10 @@ namespace armarx::armem::articulated_object
 
         const auto& timestamp = obj.timestamp;
 
-        ARMARX_DEBUG << "Storing articulated object instance '" << obj.description.name << "' (provider '" << properties.providerName << "')";
+        ARMARX_CHECK(not obj.instance.empty()) << "An object instance name must be provided!";
+        const std::string entityName = obj.description.name + "/" + obj.instance;
+
+        ARMARX_DEBUG << "Storing articulated object instance '" << entityName << "' (provider '" << properties.providerName << "')";
 
         const auto providerId = armem::MemoryID()
                                 .withMemoryName(properties.memoryName)
@@ -195,7 +200,7 @@ namespace armarx::armem::articulated_object
                                 .withProviderSegmentName(properties.providerName);
 
         armem::EntityUpdate update;
-        update.entityID = providerId.withEntityName(obj.description.name);
+        update.entityID = providerId.withEntityName(entityName);
         // .withTimestamp(timestamp); // You only need to specify the entity ID, not the snapshot ID
 
         // arondto::Robot aronArticulatedObject;