diff --git a/source/armarx/navigation/server/Navigator.cpp b/source/armarx/navigation/server/Navigator.cpp
index 0473f2ec5257055b9a45a07e6c6b0f3fa0f50f6f..57d78b3c41cce2b8e19e5ea23201e03289ec6bda 100644
--- a/source/armarx/navigation/server/Navigator.cpp
+++ b/source/armarx/navigation/server/Navigator.cpp
@@ -1039,8 +1039,13 @@ namespace armarx::navigation::server
         ARMARX_INFO << "Stopping.";
 
         pause();
-        // FIXME: send stop event
-        // TODO: Reset own state.
+
+        // stop all threads, including this one
+        stopAllThreads();
+
+        goalReachedMonitor.reset();
+        goalReachedMonitor = std::nullopt;
+
     }
 
     bool