diff --git a/pre-upload.py b/pre-upload.py
index ed69623..03452c4 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -605,10 +605,18 @@
 
 def _check_change_has_bug_field(project, commit):
   """Check for a correctly formatted 'BUG=' field in the commit message."""
-  OLD_BUG_RE = r'\nBUG=.*chromium-os'
+
+  OLD_BUG_RE = r'\nBUG=b:\d+'
   if re.search(OLD_BUG_RE, _get_commit_desc(commit)):
-    msg = ('The chromium-os bug tracker is now deprecated. Please use\n'
-           'the chromium tracker in your BUG= line now.')
+    msg = ('The old bug format b:<id> for buganizer bugs is deprecated.\n'
+           'Please use the new format b/<id> in your BUG= line now.')
+    return HookFailure(msg)
+
+  OLD_CHROMIUM_RE = r'\nBUG=chromium:\d+'
+  if re.search(OLD_CHROMIUM_RE, _get_commit_desc(commit)):
+    msg = ('The chromium: tracker is no longer supported.\n'
+           'Please provide a buganinzer id in the form b/<id> '
+           'instead in your BUG= line now.')
     return HookFailure(msg)
 
   # Android internal and external projects use "Bug: " to track bugs in
@@ -625,11 +633,11 @@
              'BUG=None')
       return HookFailure(msg)
   else:
-    BUG_RE = r'\nBUG=([Nn]one|(chromium|b):\d+)'
+    BUG_RE = r'\nBUG=([Nn]one|b\/\d+)'
     if not re.search(BUG_RE, _get_commit_desc(commit)):
       msg = ('Changelist description needs BUG field (after first line):\n'
-             'BUG=chromium:9999 (for public tracker)\n'
-             'BUG=b:9999 (for buganizer)\n'
+             'Examples:\n'
+             'BUG=b/9999 (for buganizer)\n'
              'BUG=None')
       return HookFailure(msg)
 
diff --git a/pre-upload_unittest.py b/pre-upload_unittest.py
index 1e55864..e9c3c40 100755
--- a/pre-upload_unittest.py
+++ b/pre-upload_unittest.py
@@ -1057,8 +1057,7 @@
 
   def testNormal(self):
     """Accept a commit message w/a valid BUG."""
-    self.assertMessageAccepted('\nBUG=chromium:1234\n', self.CROS_PROJECT)
-    self.assertMessageAccepted('\nBUG=b:1234\n', self.CROS_PROJECT)
+    self.assertMessageAccepted('\nBUG=b/1234\n', self.CROS_PROJECT)
 
     self.assertMessageAccepted('\nBug: 1234\n', self.AOSP_PROJECT)
     self.assertMessageAccepted('\nBug:1234\n', self.AOSP_PROJECT)
@@ -1094,9 +1093,9 @@
 
   def testOldTrackers(self):
     """Reject commit messages using old trackers."""
-    self.assertMessageRejected('\nBUG=chrome-os-partner:1234\n',
+    self.assertMessageRejected('\nBUG=b:1234\n',
                                self.CROS_PROJECT)
-    self.assertMessageRejected('\nBUG=chromium-os:1234\n', self.CROS_PROJECT)
+    self.assertMessageRejected('\nBUG=chromium:1234\n', self.CROS_PROJECT)
 
   def testNoTrackers(self):
     """Reject commit messages w/invalid trackers."""
