diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index cf46862..9d1e9ba 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -10,9 +10,12 @@
 """
 
 import os
+import re
 import sys
 
 
+REVERT_CL_SUBJECT_PREFIX = 'Revert '
+
 SKIA_TREE_STATUS_URL = 'http://skia-tree-status.appspot.com'
 
 PUBLIC_API_OWNERS = (
@@ -20,7 +23,6 @@
     'reed@google.com',
     'bsalomon@chromium.org',
     'bsalomon@google.com',
-    'rmistry@google.com',  # For emergency reverts only.
 )
 
 
@@ -127,6 +129,9 @@
   if issue and input_api.rietveld:
     issue_properties = input_api.rietveld.get_issue_properties(
         issue=int(issue), messages=True)
+    if re.match(REVERT_CL_SUBJECT_PREFIX, issue_properties['subject'], re.I):
+      # It is a revert CL, ignore the public api owners check.
+      return results
     if issue_properties['owner_email'] in PUBLIC_API_OWNERS:
       # An owner created the CL that is an automatic LGTM.
       lgtm_from_owner = True
@@ -139,7 +144,7 @@
           # Found an lgtm in a message from an owner.
           lgtm_from_owner = True
           break;
-       
+
   if not lgtm_from_owner:
     results.append(
         output_api.PresubmitError(
