diff --git a/toonz/sources/include/tools/assistant.h b/toonz/sources/include/tools/assistant.h
index 50c5840..c2b2322 100644
--- a/toonz/sources/include/tools/assistant.h
+++ b/toonz/sources/include/tools/assistant.h
@@ -219,8 +219,8 @@ public:
   }
 
   void fixPoints();
-  void move(const TPointD &position);
-  void movePoint(const TStringId &name, const TPointD &position);
+  bool move(const TPointD &position);
+  bool movePoint(const TStringId &name, const TPointD &position);
   void setPointSelection(const TStringId &name, bool selected) const;
   void setAllPointsSelection(bool selected) const;
 
diff --git a/toonz/sources/tnztools/assistant.cpp b/toonz/sources/tnztools/assistant.cpp
index 50f3b91..9cfb89d 100644
--- a/toonz/sources/tnztools/assistant.cpp
+++ b/toonz/sources/tnztools/assistant.cpp
@@ -219,21 +219,28 @@ TAssistant::fixPoints()
 
 //---------------------------------------------------------------------------------------------------
 
-void
+bool
 TAssistant::move(const TPointD &position) {
   TPointD d = position - getBasePoint().position;
-  for(TAssistantPointMap::iterator i = m_points.begin(); i != m_points.end(); ++i)
-    i->second.position += d;
-  fixPoints();
+  if (d != TPointD()) {
+    for(TAssistantPointMap::iterator i = m_points.begin(); i != m_points.end(); ++i)
+      i->second.position += d;
+    fixPoints();
+    return true;
+  }
+  return false;
 }
 
 //---------------------------------------------------------------------------------------------------
 
-void
+bool
 TAssistant::movePoint(const TStringId &name, const TPointD &position) {
   TAssistantPointMap::iterator i = m_points.find(name);
-  if (i != m_points.end())
+  if (i != m_points.end() && i->second.position != position) {
     onMovePoint(i->second, position);
+    return true;
+  }
+  return false;
 }
 
 //---------------------------------------------------------------------------------------------------
diff --git a/toonz/sources/tnztools/editassistantstool.cpp b/toonz/sources/tnztools/editassistantstool.cpp
index 763a64c..588a927 100644
--- a/toonz/sources/tnztools/editassistantstool.cpp
+++ b/toonz/sources/tnztools/editassistantstool.cpp
@@ -546,13 +546,13 @@ public:
 
   void leftButtonDrag(const TPointD &position, const TMouseEvent&) override {
     if (m_dragAllPoints) {
-      if (Closer closer = write(ModeAssistant, true))
-        m_writeAssistant->move( position + m_currentPointOffset );
+      if (Closer closer = write(ModeAssistant))
+        if (m_writeAssistant->move(position + m_currentPointOffset))
+          touch();
     } else {
-      if (Closer closer = write(ModePoint, true))
-        m_writeAssistant->movePoint(
-          m_currentPointName,
-          position + m_currentPointOffset);
+      if (Closer closer = write(ModePoint))
+        if (m_writeAssistant->movePoint(m_currentPointName, position + m_currentPointOffset))
+          touch();
     }
     m_currentPosition = position;
     getViewer()->GLInvalidateAll();
@@ -560,13 +560,13 @@ public:
 
   void leftButtonUp(const TPointD &position, const TMouseEvent&) override {
     if (m_dragAllPoints) {
-      if (Closer closer = write(ModeAssistant, true))
-        m_writeAssistant->move( position + m_currentPointOffset );
+      if (Closer closer = write(ModeAssistant))
+        if (m_writeAssistant->move(position + m_currentPointOffset))
+          touch();
     } else {
-      if (Closer closer = write(ModePoint, true))
-        m_writeAssistant->movePoint(
-          m_currentPointName,
-          position + m_currentPointOffset);
+      if (Closer closer = write(ModePoint))
+        if (m_writeAssistant->movePoint(m_currentPointName, position + m_currentPointOffset))
+          touch();
     }
 
     apply();