diff --git a/src/Components/CMDEd.tsx b/src/Components/CMDEd.tsx
index ab33ea8b3fccd8f5d6035e3fbe8a160e5c23c40e..14dea64d60c7b2bcb63b38719b5296971dcf5b4c 100644
--- a/src/Components/CMDEd.tsx
+++ b/src/Components/CMDEd.tsx
@@ -111,7 +111,6 @@ export default class CMDEditor extends Component<
     }
     clearTimeout(this.timeoutPush);
     if (!this.isDirty) {
-      this.setPushTimeout();
       return;
     }
 
@@ -121,7 +120,6 @@ export default class CMDEditor extends Component<
     if (diffs.length === 1 && diffs[0][0] === DiffMatchPatch.DIFF_EQUAL) {
       // Same value
       this.isDirty = false;
-      this.setPushTimeout();
       return;
     }
 
@@ -148,7 +146,6 @@ export default class CMDEditor extends Component<
     });
     this.oldValue = this.state.value;
     this.isDirty = false;
-    this.setPushTimeout();
   }
 
   /**
@@ -313,7 +310,10 @@ export default class CMDEditor extends Component<
     const valueUI = typeof value == "undefined" ? "" : value;
     if (this.state.value === valueUI) return;
 
-    this.isDirty = true;
+    if (!this.isDirty) {
+      this.isDirty = true;
+      this.setPushTimeout();
+    }
 
     this.setState({
       value: valueUI,