diff --git a/source/armarx/navigation/client/Navigator.cpp b/source/armarx/navigation/client/Navigator.cpp
index 15fb4bc172b76ffea7cd1460864894786f3cb20b..73ab51bcc842b86a07374cb7815b921d578428e4 100644
--- a/source/armarx/navigation/client/Navigator.cpp
+++ b/source/armarx/navigation/client/Navigator.cpp
@@ -45,6 +45,12 @@ namespace armarx::navigation::client
     {
         ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
+        {
+            // TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
+            //  after the event is reset
+            std::scoped_lock const l{stoppedInfo.m};
+            stoppedInfo.event.reset();
+        }
         srv.navigator->moveTo(waypoints, frame);
     }
 
@@ -58,6 +64,12 @@ namespace armarx::navigation::client
         const std::vector<WaypointTarget>& path = builder.path();
         validate(path);
 
+        {
+            // TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
+            //  after the event is reset
+            std::scoped_lock const l{stoppedInfo.m};
+            stoppedInfo.event.reset();
+        }
         srv.navigator->moveTo(path, frame);
     }
 
@@ -67,6 +79,13 @@ namespace armarx::navigation::client
     {
         ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(srv.navigator) << "Navigator service must not be null!";
+
+        {
+            // TODO: This still leads to a race condition, if extern a stop event is generated before moveTo but arrives
+            //  after the event is reset
+            std::scoped_lock const l{stoppedInfo.m};
+            stoppedInfo.event.reset();
+        }
         srv.navigator->moveTowards(direction, frame);
     }