diff --git a/pre-upload.py b/pre-upload.py
index b44cbc9..fa964fb 100755
--- a/pre-upload.py
+++ b/pre-upload.py
@@ -714,6 +714,30 @@
     return HookFailure('Change-Id must be in last paragraph of description.')
 
 
+def _check_commit_message_style(_project, commit):
+  """Verify that the commit message matches our style.
+
+  We do not check for BUG=/TEST=/etc... lines here as that is handled by other
+  commit hooks.
+  """
+  desc = _get_commit_desc(commit)
+
+  # The first line should be by itself.
+  lines = desc.splitlines()
+  if len(lines) > 1 and lines[1]:
+    return HookFailure('The second line of the commit message must be blank.')
+
+  # The first line should be one sentence.
+  if '. ' in lines[0]:
+    return HookFailure('The first line cannot be more than one sentence.')
+
+  # The first line cannot be too long.
+  MAX_FIRST_LINE_LEN = 100
+  if len(lines[0]) > MAX_FIRST_LINE_LEN:
+    return HookFailure('The first line must be less than %i chars.' %
+                       MAX_FIRST_LINE_LEN)
+
+
 def _check_license(_project, commit):
   """Verifies the license/copyright header.
 
@@ -1017,6 +1041,7 @@
     _check_change_has_valid_cq_depend,
     _check_change_has_test_field,
     _check_change_has_proper_changeid,
+    _check_commit_message_style,
 ]
 
 
diff --git a/pre-upload_unittest.py b/pre-upload_unittest.py
index eddbb7e..815308f 100755
--- a/pre-upload_unittest.py
+++ b/pre-upload_unittest.py
@@ -642,5 +642,31 @@
     self.assertMessageRejected('\nChange-Id: I1234\nbar\n')
 
 
+class CheckCommitMessageStyle(CommitMessageTestCase):
+  """Tests for _check_commit_message_style."""
+
+  @staticmethod
+  def CheckMessage(project, commit):
+    return pre_upload._check_commit_message_style(project, commit)
+
+  def testNormal(self):
+    """Accept valid commit messages."""
+    self.assertMessageAccepted('one sentence.\n')
+    self.assertMessageAccepted('some.module: do it!\n')
+    self.assertMessageAccepted('one line\n\nmore stuff here.')
+
+  def testNoBlankSecondLine(self):
+    """Reject messages that have stuff on the second line."""
+    self.assertMessageRejected('one sentence.\nbad fish!\n')
+
+  def testFirstLineMultipleSentences(self):
+    """Reject messages that have more than one sentence in the summary."""
+    self.assertMessageRejected('one sentence. two sentence!\n')
+
+  def testFirstLineTooLone(self):
+    """Reject first lines that are too long."""
+    self.assertMessageRejected('o' * 200)
+
+
 if __name__ == '__main__':
   cros_test_lib.main()
