diff --git a/source/RobotAPI/components/units/TCPControlUnit.cpp b/source/RobotAPI/components/units/TCPControlUnit.cpp
index 19330a17f31479644927199b8da4cac5c8b9b0a9..7f7a2da918488dc013d014064ef57031f5d41f4f 100644
--- a/source/RobotAPI/components/units/TCPControlUnit.cpp
+++ b/source/RobotAPI/components/units/TCPControlUnit.cpp
@@ -180,6 +180,12 @@ namespace armarx
 
     void TCPControlUnit::setTCPVelocity(const std::string& nodeSetName, const std::string& tcpName, const FramedDirectionBasePtr& translationVelocity, const FramedDirectionBasePtr& orientationVelocityRPY, const Ice::Current& c)
     {
+        if(!isRequested())
+        {
+            ARMARX_WARNING << "Implicitly requesting TCPControlUnit! Please call request before setting TCPVelocities!";
+            request();
+        }
+
         ScopedLock lock(dataMutex);
         ARMARX_CHECK_EXPRESSION_W_HINT(jointExistenceCheckRobot->hasRobotNodeSet(nodeSetName), "The robot does not have the node set: " + nodeSetName);