diff --git a/Control/Navigation/Navigation/NavigationToken.h b/Control/Navigation/Navigation/NavigationToken.h
index 9e41a16925b01bc82cb7665a606e818ee9ded9ff..4891c1e6947b2be5cda217ebf6177e2c14d0cbb0 100644
--- a/Control/Navigation/Navigation/NavigationToken.h
+++ b/Control/Navigation/Navigation/NavigationToken.h
@@ -269,7 +269,7 @@ class NavigationToken : public INavigationToken
  // copy operator
  NavigationToken& operator=(const NavigationToken & anotherToken)
  {
-   if ( anotherToken.m_data != 0 )
+   if ( this != &anotherToken && anotherToken.m_data != 0 )
      {
        m_data         = anotherToken.m_data;
        m_navCondition = anotherToken.m_navCondition; 
@@ -278,6 +278,18 @@ class NavigationToken : public INavigationToken
    return *this;
  }
 
+ // move operator
+ NavigationToken& operator=(NavigationToken&& anotherToken)
+ {
+   if ( this != &anotherToken && anotherToken.m_data != 0 )
+     {
+       m_data         = std::move (anotherToken.m_data);
+       m_navCondition = anotherToken.m_navCondition; 
+       m_navSelector  = anotherToken.m_navSelector;
+     }   
+   return *this;
+ }
+
  // dump 
  void dumpStore();