diff --git a/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp b/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp
index 3b624f9404e6eede5d8c6963dc13c885f383782d..8a73afd2069896bbea2577b8f6d73f7df95b1ab5 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp
+++ b/source/RobotAPI/libraries/armem_gui/instance/tree_builders/DataTreeBuilderBase.cpp
@@ -3,6 +3,7 @@
 #include <QTreeWidgetItem>
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+// #include <ArmarXCore/core/logging/Logging.h>
 
 #include <RobotAPI/libraries/armem_gui/TreeWidgetBuilder.h>
 #include <RobotAPI/libraries/armem_gui/instance/sanitize_typename.h>
@@ -12,6 +13,9 @@
 namespace armarx::armem::gui::instance
 {
 
+    const int keyIndexRole = Qt::UserRole + 10;
+
+
     DataTreeBuilderBase::DataTreeBuilderBase()
     {
     }
@@ -35,7 +39,7 @@ namespace armarx::armem::gui::instance
     QTreeWidgetItem* DataTreeBuilderBase::makeItem(size_t key) const
     {
         QTreeWidgetItem* item = new QTreeWidgetItem();
-        item->setData(0, Qt::UserRole, static_cast<int>(key));
+        item->setData(0, keyIndexRole, static_cast<int>(key));
         return item;
     }
 
@@ -74,7 +78,11 @@ namespace armarx::armem::gui::instance
         ListBuilder builder;
         builder.setCompareFn([](size_t key, QTreeWidgetItem * item)
         {
-            return armarx::detail::compare(static_cast<int>(key), item->data(0, Qt::UserRole).toInt());
+            QVariant itemKey = item->data(0, keyIndexRole);
+            ARMARX_CHECK_EQUAL(itemKey.type(), QVariant::Type::Int);
+            // << VAROUT(key) << " | " << VAROUT(item->text(0).toStdString()) << itemKey.typeName();
+
+            return armarx::detail::compare(static_cast<int>(key), itemKey.toInt());
         });
         builder.setMakeItemFn([this](size_t key)
         {