diff --git a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
index bcfce34f33b01afabf9c65cb897d2c9cd1d9f58b..8a61ecd6de4053dac87894685e2b011aec824245 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
+++ b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.cpp
@@ -261,6 +261,14 @@ namespace armarx::armem::gui::instance
                 menu.addAction(action);
             }
         }
+        else if (item == this->treeItemData && currentInstance.has_value())
+        {
+            QAction* action = makeActionCopyDataToClipboard();
+            if (action)
+            {
+                menu.addAction(action);
+            }
+        }
         else if (item->parent() == nullptr)
         {
             return;  // Other top level item => no context menu.
@@ -330,7 +338,11 @@ namespace armarx::armem::gui::instance
         const std::optional<aron::Path> elementPath = getElementPath(item);
         if (elementPath)
         {
-            menu.addAction(makeActionCopyDataToClipboard(elementPath.value()));
+            QAction* action = makeActionCopyDataToClipboard(elementPath.value());
+            if (action)
+            {
+                menu.addAction(action);
+            }
         }
 
         if (menu.actions().size() > 0)
@@ -421,15 +433,32 @@ namespace armarx::armem::gui::instance
         return action;
     }
 
+    QAction* InstanceView::makeActionCopyDataToClipboard()
+    {
+        return makeCopyAction(currentInstance->data());
+    }
+
     QAction* InstanceView::makeActionCopyDataToClipboard(const aron::Path& path)
     {
-        QAction* action = new QAction("Copy data to clipboard as JSON");
+        try
+        {
+            aron::data::VariantPtr element = currentInstance->data()->navigateAbsolute(path);
+            return makeCopyAction(element);
+        }
+        catch (const aron::error::AronException& e)
+        {
+            ARMARX_WARNING << "Could not convert Aron data to JSON: " << e.getReason();
+        }
+        return nullptr;
+    }
 
-        connect(action, &QAction::triggered, [this, path]()
+    QAction* InstanceView::makeCopyAction(const aron::data::VariantPtr& element)
+    {
+        QAction* action = new QAction("Copy data to clipboard as JSON");
+        connect(action, &QAction::triggered, [this, element]()
         {
             try
             {
-                aron::data::VariantPtr element = currentInstance->data()->navigateAbsolute(path);
                 TreeTypedJSONConverter conv;
                 // TODO(phesch): Type hierarchy doesn't match data hierarchy
                 armarx::aron::data::visitRecursive(conv, currentInstance->data(), currentAronType);
@@ -448,7 +477,6 @@ namespace armarx::armem::gui::instance
         return action;
     }
 
-
     void InstanceView::showImageView(const aron::Path& elementPath)
     {
         if (not currentInstance)
diff --git a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
index 1dc2ce13ec8fadad24072d9301817ceca7779a64..75e41ab9cb4c61f6267e74454d261dff48488ac9 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
+++ b/source/RobotAPI/libraries/armem_gui/instance/InstanceView.h
@@ -79,7 +79,9 @@ namespace armarx::armem::gui::instance
 
         QAction* makeActionResolveMemoryID(const MemoryID& id);
         QAction* makeActionCopyMemoryID(const MemoryID& id);
+        QAction* makeActionCopyDataToClipboard();
         QAction* makeActionCopyDataToClipboard(const aron::Path& path);
+        QAction* makeCopyAction(const aron::data::VariantPtr& element);
 
 
     private:
diff --git a/source/RobotAPI/libraries/armem_gui/instance/tree_visitors/TreeTypedJSONConverter.cpp b/source/RobotAPI/libraries/armem_gui/instance/tree_visitors/TreeTypedJSONConverter.cpp
index f4cf3788da6cfb911d9dba4ad11b0aea234af1e6..b7d157c746d3b4c5dfc99f7bc91fddefe5405af9 100644
--- a/source/RobotAPI/libraries/armem_gui/instance/tree_visitors/TreeTypedJSONConverter.cpp
+++ b/source/RobotAPI/libraries/armem_gui/instance/tree_visitors/TreeTypedJSONConverter.cpp
@@ -36,7 +36,7 @@ namespace armarx::armem::gui::instance
         }
         catch (const aron::error::AronException& e)
         {
-            ARMARX_WARNING << "Object did not have a path." << e.getReason();
+            // This happens when we start at the top-level object.
         }
         jsonStack.push({key, nlohmann::json(nlohmann::json::value_t::object)});
     }