diff --git a/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.cpp b/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.cpp
index a19032cd088ccdf49e16af5ea394d73a92b30878..9d2c8e7ed36b6a494556ecdd55e652aea93b7e77 100644
--- a/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.cpp
+++ b/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.cpp
@@ -6,21 +6,27 @@
 namespace armarx
 {
 
-    ArVizDrawerBase::ArVizDrawerBase(armarx::viz::Client &arviz) : arvizClient(arviz) {}
+    ArVizDrawerBase::ArVizDrawerBase(armarx::viz::Client& arviz) : arvizClient(arviz) {}
 
     ArVizDrawerBase::~ArVizDrawerBase() = default;
 
-    viz::Client &ArVizDrawerBase::arviz() { return arvizClient; }
+    viz::ScopedClient& ArVizDrawerBase::arviz()
+    {
+        return arvizClient;
+    }
 
-    const viz::Client &ArVizDrawerBase::arviz() const { return arvizClient; }
+    const viz::ScopedClient& ArVizDrawerBase::arviz() const
+    {
+        return arvizClient;
+    }
 
-    void ArVizDrawerBase::commit(const viz::Layer &layer)
+    void ArVizDrawerBase::commit(const viz::Layer& layer)
     {
         std::lock_guard guard{layerMtx};
         arvizClient.commit(layer);
     }
 
-    void ArVizDrawerBase::commit(const std::vector<viz::Layer> &layers)
+    void ArVizDrawerBase::commit(const std::vector<viz::Layer>& layers)
     {
         std::lock_guard guard{layerMtx};
         arvizClient.commit(layers);
diff --git a/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.h b/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.h
index f7c813be72283ec4899f402a1133c41ab5a381e2..e302acc5c27e025aac9c103793f7a5ed726d76d9 100644
--- a/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.h
+++ b/source/RobotAPI/components/ArViz/Client/drawer/ArVizDrawerBase.h
@@ -24,6 +24,8 @@
 #include <mutex>
 #include <vector>
 
+#include "RobotAPI/components/ArViz/Client/ScopedClient.h"
+
 namespace armarx
 {
     // forward declaration
@@ -42,19 +44,19 @@ namespace armarx
      */
     class ArVizDrawerBase
     {
-      public:
-        ArVizDrawerBase(armarx::viz::Client &arviz);
+    public:
+        ArVizDrawerBase(armarx::viz::Client& arviz);
         virtual ~ArVizDrawerBase();
 
-      protected:
-        viz::Client &arviz();
-        const viz::Client &arviz() const;
+    protected:
+        viz::ScopedClient& arviz();
+        const viz::ScopedClient& arviz() const;
 
-        void commit(const viz::Layer &layer);
-        void commit(const std::vector<viz::Layer> &layers);
+        void commit(const viz::Layer& layer);
+        void commit(const std::vector<viz::Layer>& layers);
 
-      private:
-        viz::Client &arvizClient;
+    private:
+        viz::ScopedClient arvizClient;
 
         std::mutex layerMtx;
     };