diff --git a/git-hooks/sanitize-commit b/git-hooks/sanitize-commit
index 06183c9360f56f954ec59c7506f86b7411c6c884..c31d8f2d79f320a8718dff7155cee5f0e02fe5df 100755
--- a/git-hooks/sanitize-commit
+++ b/git-hooks/sanitize-commit
@@ -95,6 +95,7 @@ my $lineno = 0;
 my $iswip = defined($cfg{wip});
 my $badrev = 0;
 my $badsign = 0;
+my $badid = defined($cfg{changeid});
 my $badlog = defined($cfg{log});
 my $spell_check = !defined($cfg{spell});
 my $parents = 0;
@@ -213,6 +214,10 @@ while (<MSG>) {
             if (!$badsign && /^Signed-off-by:/i) {
                 $badsign = 1;
             }
+            if (!$badid && /\bI[0-9a-f]{40}\b/ && !/^Change-Id: /) {
+                $badid = 1;
+                &complain("Gerrit change id outside Change-Id footer", "changeid");
+            }
             my $ftr = 0;
             if (/^\(cherry[- ]picked /) {
                 $cherry = 1 if (!/\)/);