diff --git a/include/clang/Format/Format.h b/include/clang/Format/Format.h
index b21bfd2..d34a043 100644
--- a/include/clang/Format/Format.h
+++ b/include/clang/Format/Format.h
@@ -61,9 +61,9 @@
   /// will either all be on the same line or will have one line each.
   bool BinPackParameters;
 
-  /// \brief Allow putting all parameters of a function declaration/call onto
-  /// the next line without calling this bin-packing.
-  bool AllowAllParametersOnNextLine;
+  /// \brief Allow putting all parameters of a function declaration onto
+  /// the next line even if \c BinPackParameters is \c false.
+  bool AllowAllParametersOfDeclarationOnNextLine;
 
   /// \brief Allow putting the return type of a function onto its own line.
   bool AllowReturnTypeOnItsOwnLine;
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 2522d4d..81c8309 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -178,7 +178,7 @@
   LLVMStyle.IndentCaseLabels = false;
   LLVMStyle.SpacesBeforeTrailingComments = 1;
   LLVMStyle.BinPackParameters = true;
-  LLVMStyle.AllowAllParametersOnNextLine = true;
+  LLVMStyle.AllowAllParametersOfDeclarationOnNextLine = true;
   LLVMStyle.AllowReturnTypeOnItsOwnLine = true;
   LLVMStyle.ConstructorInitializerAllOnOneLineOrOnePerLine = false;
   LLVMStyle.AllowShortIfStatementsOnASingleLine = false;
@@ -196,7 +196,7 @@
   GoogleStyle.IndentCaseLabels = true;
   GoogleStyle.SpacesBeforeTrailingComments = 2;
   GoogleStyle.BinPackParameters = false;
-  GoogleStyle.AllowAllParametersOnNextLine = true;
+  GoogleStyle.AllowAllParametersOfDeclarationOnNextLine = true;
   GoogleStyle.AllowReturnTypeOnItsOwnLine = false;
   GoogleStyle.ConstructorInitializerAllOnOneLineOrOnePerLine = true;
   GoogleStyle.AllowShortIfStatementsOnASingleLine = false;
@@ -206,7 +206,7 @@
 
 FormatStyle getChromiumStyle() {
   FormatStyle ChromiumStyle = getGoogleStyle();
-  ChromiumStyle.AllowAllParametersOnNextLine = false;
+  ChromiumStyle.AllowAllParametersOfDeclarationOnNextLine = false;
   ChromiumStyle.SplitTemplateClosingGreater = true;
   return ChromiumStyle;
 }
@@ -652,10 +652,11 @@
 
     if (!Style.BinPackParameters && Newline) {
       // If we are breaking after '(', '{', '<', this is not bin packing unless
-      // AllowAllParametersOnNextLine is false.
+      // AllowAllParametersOfDeclarationOnNextLine is false.
       if ((Previous.isNot(tok::l_paren) && Previous.isNot(tok::l_brace) &&
            Previous.Type != TT_TemplateOpener) ||
-          !Style.AllowAllParametersOnNextLine)
+          (!Style.AllowAllParametersOfDeclarationOnNextLine &&
+           Line.MustBeDeclaration))
         State.Stack.back().BreakAfterComma = true;
 
       // Any break on this level means that the parent level has been broken
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index f8402c0..219d73c 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -1051,10 +1051,15 @@
                      "  a);");
 
   FormatStyle Style = getGoogleStyle();
-  Style.AllowAllParametersOnNextLine = false;
-  verifyFormat("aaaaaaaaaaaaaaa(aaaaaaaaa,\n"
+  Style.AllowAllParametersOfDeclarationOnNextLine = false;
+  verifyFormat("void aaaaaaaaaa(aaaaaaaaa,\n"
                "                aaaaaaaaa,\n"
-               "                aaaaaaaaaaaaaaaaaaaaa).aaaaaaaaaaaaaaaaaa();",
+               "                aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);",
+               Style);
+  verifyFormat("void f() {\n"
+               "  aaaaaaaaaaaaaaaaaaaaaaaa(\n"
+               "      aaaaaaaaa, aaaaaaaaa, aaaaaaaaaaaaaaaaaaaaa).aaaaaaa();\n"
+               "}",
                Style);
 }
 
