diff --git a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
index 02325df8c3333ffa5671bcdc109e04ff6edc4ceb..4dda540b2596801f1492c4ae8ac532455af002a4 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/proprioception/converters/Armar6Converter.cpp
@@ -164,7 +164,23 @@ namespace armarx::armem::server::robot_state::proprioception
             std::string key = split.size() == 4
                               ? (fieldName + "." + split.at(3))
                               : fieldName;
-            dto.extra[key] = getValueAs<float>(value);
+
+            switch (value.entry.type)
+            {
+                case RobotUnitDataStreaming::NodeTypeFloat:
+                    dto.extra[key] = getValueAs<float>(value);
+                    break;
+                case RobotUnitDataStreaming::NodeTypeInt:
+                    dto.extra[key] = getValueAs<int>(value);
+                    break;
+                case RobotUnitDataStreaming::NodeTypeLong:
+                    dto.extra[key] = getValueAs<long>(value);
+                    break;
+                default:
+                    ARMARX_DEBUG << "Cannot handle extra field '" << key << "' of type "
+                                    << RobotUnitDataStreaming::DataEntryNames.to_name(value.entry.type);
+                    break;
+            }
         }
     }