diff --git a/source/RobotAPI/components/ArViz/Client/Client.h b/source/RobotAPI/components/ArViz/Client/Client.h
index 71e4197cc71b0ec094ecec84b47a4e35f0a3854a..f946e02d4298910c72bb4d8a59bf9d64d42ac5ab 100644
--- a/source/RobotAPI/components/ArViz/Client/Client.h
+++ b/source/RobotAPI/components/ArViz/Client/Client.h
@@ -15,12 +15,14 @@ namespace armarx::viz
     {
     public:
         Client() = default;
+        virtual ~Client() = default;
 
         Client(armarx::Component& component, std::string topicNameProperty = "ArVizTopicName")
         {
             componentName = component.getName();
             component.getTopicFromProperty(_topic, topicNameProperty);
         }
+
         Client(ManagedIceObject& obj, const std::string& topicName = "ArVizTopic")
         {
             componentName = obj.getName();
diff --git a/source/RobotAPI/components/ArViz/Client/ScopedClient.cpp b/source/RobotAPI/components/ArViz/Client/ScopedClient.cpp
index 2e968ca7dd19298ac9eff6080370edb73a5138ca..ed2f2221ef763270c461ab3c1c1bc436ac26a2a9 100644
--- a/source/RobotAPI/components/ArViz/Client/ScopedClient.cpp
+++ b/source/RobotAPI/components/ArViz/Client/ScopedClient.cpp
@@ -24,6 +24,7 @@
 
 namespace armarx::viz
 {
+    ScopedClient::ScopedClient(const Client& client): Client(client) {}
 
     Layer ScopedClient::layer(std::string const& name) const
     {
diff --git a/source/RobotAPI/components/ArViz/Client/ScopedClient.h b/source/RobotAPI/components/ArViz/Client/ScopedClient.h
index 11a64bd1e88fc319dc664321a6446aee2bc44bc0..78adbcab32013de4b82f9a35671063e66a4aaa11 100644
--- a/source/RobotAPI/components/ArViz/Client/ScopedClient.h
+++ b/source/RobotAPI/components/ArViz/Client/ScopedClient.h
@@ -41,6 +41,7 @@ namespace armarx::viz
     {
     public:
         using Client::Client;
+        ScopedClient(const Client& client);
 
         Layer layer(std::string const& name) const override;