diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index 9312661..a6c11dc 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -660,8 +660,7 @@
     for (int i = 1, e = Line.Tokens.size(); i != e; ++i) {
       TokenAnnotation &Annotation = Annotations[i];
 
-      Annotation.CanBreakBefore =
-          canBreakBetween(Line.Tokens[i - 1], Line.Tokens[i]);
+      Annotation.CanBreakBefore = canBreakBefore(i);
 
       if (Annotation.Type == TokenAnnotation::TT_CtorInitializerColon) {
         Annotation.MustBreakBefore = true;
@@ -896,7 +895,13 @@
     return true;
   }
 
-  bool canBreakBetween(const FormatToken &Left, const FormatToken &Right) {
+  bool canBreakBefore(unsigned i) {
+    if (Annotations[i - 1].Type == TokenAnnotation::TT_PointerOrReference ||
+        Annotations[i].Type == TokenAnnotation::TT_ConditionalExpr) {
+      return false;
+    }
+    const FormatToken &Left = Line.Tokens[i - 1];
+    const FormatToken &Right = Line.Tokens[i];
     if (Right.Tok.is(tok::r_paren) || Right.Tok.is(tok::l_brace) ||
         Right.Tok.is(tok::comment) || Right.Tok.is(tok::greater))
       return false;
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index b719acf..99204f5 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -682,6 +682,16 @@
   verifyGoogleFormat("A<int**, int**> a;");
 }
 
+TEST_F(FormatTest, DoesNotBreakBeforePointerOrReference) {
+  verifyFormat(
+      "int *someFunction(int LoooooooooooooooongParam1,\n"
+      "                  int LoooooooooooooooongParam2) {\n}");
+  verifyFormat(
+      "TypeSpecDecl *TypeSpecDecl::Create(ASTContext &C, DeclContext *DC,\n"
+      "                                   SourceLocation L, IdentifierIn *II,\n"
+      "                                   Type *T) {\n}");
+}
+
 TEST_F(FormatTest, LineStartsWithSpecialCharacter) {
   verifyFormat("(a)->b();");
   verifyFormat("--a;");
