diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnit.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnit.cpp
index df0cdc4ecbd5d0390fbd96dff3b14d4938b42594..d67a5fecde19e100ea4770002354d634fdb7e265 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnit.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnit.cpp
@@ -1415,8 +1415,6 @@ namespace armarx
         for (ManagedIceObjectPtr& unit : units)
         {
             getArmarXManager()->removeObjectBlocking(unit->getName());
-            checkRefCountIsOne(unit, unit->getName());
-            checkRefCountIsOne(unit, unit->getName());
         }
         units.clear();
     }
@@ -1442,7 +1440,6 @@ namespace armarx
             {
                 ARMARX_FATAL << deactivateSpam(0.1) << "PUBLISHER TASK IS RUNNING EVEN AFTER IT WAS STOPPED!";
             }
-            checkRefCountIsOne(publisherTask, "publisherTask");
             publisherTask = nullptr;
             //since the drawer queues draw events and we want to clear the layers, we have to sleep here
             std::this_thread::sleep_until(tPublisherStopped + std::chrono::milliseconds {100});
@@ -1464,7 +1461,6 @@ namespace armarx
             {
                 LVL1ControllerPtr& lvl1 = n2lvl1.second;
                 getArmarXManager()->removeObjectBlocking(lvl1->getName());
-                checkRefCountIsOne(lvl1, lvl1->getName());
             }
             lvl1ControllersToBeDeleted.clear();
         }
@@ -1474,7 +1470,6 @@ namespace armarx
             {
                 LVL1ControllerPtr& lvl1 = n2lvl1.second;
                 getArmarXManager()->removeObjectBlocking(lvl1->getName());
-                checkRefCountIsOne(lvl1, lvl1->getName());
             }
             lvl1Controllers.clear();
         }
diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnit.h b/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
index b0eb485b0ef916cdcde2c4e49f55b107b6c70c10..0dd43861fc72e4eaa2e6ebc1bf6a4d8ec4efe7be 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
@@ -144,7 +144,6 @@ namespace armarx
         {
             lvl1->rtDeactivateControllerBecauseOfError();
         }
-
         static void RtSetLVL1ControllerActive(const LVL1ControllerPtr& lvl1, bool activate, bool deactivateBecauseOfError = false)
         {
             if (activate)
@@ -334,8 +333,6 @@ namespace armarx
         template<class Cont>
         static Ice::StringSeq GetNonNullNames(const Cont& c);
 
-        template<class PtrT>
-        void checkRefCountIsOne(const PtrT& p, const std::string& name) const;
         GuardType getGuard() const;
         inline const KeyValueVector<std::string, SensorDevicePtr>& getSensorDevices() const;
         inline const KeyValueVector<std::string, ControlDevicePtr>& getControlDevices() const;
@@ -684,15 +681,5 @@ namespace armarx
         }
         return result;
     }
-
-    template<class PtrT>
-    void RobotUnit::checkRefCountIsOne(const PtrT& p, const std::string& name) const
-    {
-        const auto uc = p->__getRef();
-        if (uc != 1)
-        {
-            ARMARX_WARNING << "Pointer " << name << " should have usecount 1 but instead hase usecount " << uc;
-        }
-    }
 }
 #endif