diff --git a/common/tool/tool_manager.cpp b/common/tool/tool_manager.cpp
index 510c934ae4..39df94cc09 100644
--- a/common/tool/tool_manager.cpp
+++ b/common/tool/tool_manager.cpp
@@ -1230,6 +1230,9 @@ bool TOOL_MANAGER::processEvent( const TOOL_EVENT& aEvent )
 
 void TOOL_MANAGER::setActiveState( TOOL_STATE* aState )
 {
+    if( m_activeState == aState )
+        return;
+
     if( m_activeState && m_viewControls )
         saveViewControls( m_activeState );