diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js
index ac2b425845bd4bafa33a6de7c481b964463217b8..3cbcd01bb48783a5dacfc020b5b191d188aaeedb 100644
--- a/lib/workers/pr/index.js
+++ b/lib/workers/pr/index.js
@@ -197,6 +197,11 @@ async function checkAutoMerge(pr, config, logger) {
       logger.info('Branch status is not "success"');
       return;
     }
+    // Check if it's been touched
+    if (!pr.canRebase) {
+      logger.info('PR is ready for automerge but has been modified');
+      return;
+    }
     // Let's merge this
     logger.info(`Automerging #${pr.number}`);
     await config.api.mergePr(pr);
diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js
index dd2707e671e68020d19f3429945826939a419477..943d9f35d89d5eea79d514fee1e1c6d70c7d72fa 100644
--- a/test/workers/pr/index.spec.js
+++ b/test/workers/pr/index.spec.js
@@ -50,11 +50,20 @@ describe('workers/pr', () => {
     });
     it('should automerge if enabled and pr is mergeable', async () => {
       config.automergeEnabled = true;
+      pr.canRebase = true;
       pr.mergeable = true;
       config.api.getBranchStatus.mockReturnValueOnce('success');
       await prWorker.checkAutoMerge(pr, config, logger);
       expect(config.api.mergePr.mock.calls.length).toBe(1);
     });
+    it('should not automerge if enabled and pr is mergeable but cannot rebase', async () => {
+      config.automergeEnabled = true;
+      pr.canRebase = false;
+      pr.mergeable = true;
+      config.api.getBranchStatus.mockReturnValueOnce('success');
+      await prWorker.checkAutoMerge(pr, config, logger);
+      expect(config.api.mergePr.mock.calls.length).toBe(0);
+    });
     it('should not automerge if enabled and pr is mergeable but branch status is not success', async () => {
       config.automergeEnabled = true;
       pr.mergeable = true;