diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h
index 0a736f1..3900e38 100644
--- a/include/clang/Parse/Action.h
+++ b/include/clang/Parse/Action.h
@@ -884,9 +884,8 @@
   virtual void ActOnFinishDelayedCXXMethodDeclaration(Scope *S, DeclTy *Method) {
   }
 
-  virtual DeclTy *ActOnStaticAssertDeclaration(SourceLocation LParenLoc, 
+  virtual DeclTy *ActOnStaticAssertDeclaration(SourceLocation AssertLoc, 
                                                ExprArg AssertExpr,
-                                               SourceLocation CommaLoc,
                                                ExprArg AssertMessageExpr,
                                                SourceLocation RParenLoc) {
     return 0;
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp
index b21ac77..f534f42 100644
--- a/lib/Parse/ParseDeclCXX.cpp
+++ b/lib/Parse/ParseDeclCXX.cpp
@@ -239,14 +239,9 @@
     return 0;
   }
   
-  if (Tok.isNot(tok::comma)) {
-    Diag(Tok, diag::err_expected_comma);
-    SkipUntil(tok::semi);
+  if (ExpectAndConsume(tok::comma, diag::err_expected_comma, "", tok::semi))
     return 0;
-  }
-  
-  SourceLocation CommaLoc = ConsumeToken();
-  
+
   if (Tok.isNot(tok::string_literal)) {
     Diag(Tok, diag::err_expected_string_literal);
     SkipUntil(tok::semi);
@@ -261,8 +256,8 @@
   
   ExpectAndConsume(tok::semi, diag::err_expected_semi_after_static_assert);
 
-  return Actions.ActOnStaticAssertDeclaration(LParenLoc, move(AssertExpr), 
-                                              CommaLoc, move(AssertMessage), 
+  return Actions.ActOnStaticAssertDeclaration(StaticAssertLoc, move(AssertExpr), 
+                                              move(AssertMessage), 
                                               RParenLoc);
 }
 
