diff --git a/git-hooks/sanitize-commit b/git-hooks/sanitize-commit
index 44a8c3b31c0f47970ca84f1acae7116ab07b59e8..b9aa736fb68926a535c264c4ed9ea90bcab77b60 100755
--- a/git-hooks/sanitize-commit
+++ b/git-hooks/sanitize-commit
@@ -91,7 +91,7 @@ sub complain()
 
 my $lineno = 0;
 my $iswip = defined($cfg{wip});
-my $revok = defined($cfg{revby});
+my $badrev = 0;
 my $badlog = defined($cfg{log});
 my $spell_check = !defined($cfg{spell});
 my $parents = 0;
@@ -191,9 +191,12 @@ while (<MSG>) {
                 &complain("2nd line of log message is not empty", "log");
             }
         } else {
-            if (!$revok && /^Reviewed-by: *(pending|TBD)?$/i) {
-                &complain("Bogus or empty Reviewed-by header", "revby", 1);
-                $revok = 1;
+            if (!$badrev && /^Reviewed-by:/i) {
+                $badrev = 1;
+            }
+            if (/^\(cherry[- ]picked /) {
+                # Some bad footers are ok above cherry-pick lines.
+                $badrev = 0;
             }
         }
     }
@@ -215,6 +218,9 @@ if ($badauthor) {
 if ($badcommitter) {
     &complain("Bogus committer email", "email", 1);
 }
+if ($badrev && !defined($cfg{revby})) {
+    &complain("Bogus Reviewed-by footer", "revby", 1);
+}
 
 {
     local $file = 'log message';