diff --git a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
index 59ba256..3991b55 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog.ts
@@ -243,8 +243,11 @@
       /^Revert(?:\^([0-9]+))? "(.*)"$/
     );
 
+    // Footer can be Issue:, Issue=, Bug: ISSUE=
     const footers = parseCommitMessageString(commitMessage).footer.filter(
-      f => f.startsWith('Issue: ') || f.startsWith('Bug: ')
+      f =>
+        f.toLocaleLowerCase().startsWith('issue') ||
+        f.toLocaleLowerCase().startsWith('bug')
     );
 
     if (revertTitleRegex) {
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts
index 1e5a194..9a07917 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-revert-dialog/gr-confirm-revert-dialog_test.ts
@@ -92,12 +92,48 @@
       'much lines\nvery\n\ncommit\nIssue: 1234567\nChange-Id: abcdefg\n',
       'abcd123' as CommitId
     );
-    const expected =
+    let expected =
       'Revert "much lines"\n\n' +
       'This reverts commit abcd123.\n\n' +
       'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
       'Issue: 1234567';
     assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nIssue= 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'Issue= 1234567';
+    assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nISSUE= 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'ISSUE= 1234567';
+    assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nISSUE: 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'ISSUE: 1234567';
+    assert.equal(element.message, expected);
   });
 
   test('populateRevertSingleChangeMessage does not parse Issue: from commit message body', () => {
@@ -121,12 +157,48 @@
       'much lines\nvery\n\ncommit\nBug: 1234567\nChange-Id: abcdefg\n',
       'abcd123' as CommitId
     );
-    const expected =
+    let expected =
       'Revert "much lines"\n\n' +
       'This reverts commit abcd123.\n\n' +
       'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
       'Bug: 1234567';
     assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nBug= 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'Bug= 1234567';
+    assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nBUG= 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'BUG= 1234567';
+    assert.equal(element.message, expected);
+
+    element.populateRevertSingleChangeMessage(
+      createParsedChange(),
+      'much lines\nvery\n\ncommit\nBUG: 1234567\nChange-Id: abcdefg\n',
+      'abcd123' as CommitId
+    );
+    expected =
+      'Revert "much lines"\n\n' +
+      'This reverts commit abcd123.\n\n' +
+      'Reason for revert: <MUST SPECIFY REASON HERE>\n\n' +
+      'BUG: 1234567';
+    assert.equal(element.message, expected);
   });
 
   test('populateRevertSingleChangeMessage does not parse Bug: from commit message body', () => {
