diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp
index 4ac4c9b..51fd4e6 100644
--- a/lib/Format/TokenAnnotator.cpp
+++ b/lib/Format/TokenAnnotator.cpp
@@ -681,10 +681,15 @@
 
     if (PrevToken->FormatTok.Tok.isLiteral() ||
         PrevToken->isOneOf(tok::r_paren, tok::r_square) ||
-        NextToken->FormatTok.Tok.isLiteral() || isUnaryOperator(*NextToken) ||
-        NextToken->isOneOf(tok::l_paren, tok::l_square))
+        NextToken->FormatTok.Tok.isLiteral() || isUnaryOperator(*NextToken))
       return TT_BinaryOperator;
 
+    // "*(" is probably part of a function type if within template parameters.
+    // Otherwise, it is probably a binary operator.
+    if (NextToken->is(tok::l_paren))
+      return Contexts.back().ContextKind == tok::less ? TT_PointerOrReference
+                                                      : TT_BinaryOperator;
+
     // It is very unlikely that we are going to find a pointer or reference type
     // definition on the RHS of an assignment.
     if (IsExpression)
@@ -989,7 +994,8 @@
             !Style.PointerBindsToType);
   if (Left.Type == TT_PointerOrReference)
     return Right.FormatTok.Tok.isLiteral() ||
-           ((Right.Type != TT_PointerOrReference) && Style.PointerBindsToType);
+           ((Right.Type != TT_PointerOrReference) &&
+            Right.isNot(tok::l_paren) && Style.PointerBindsToType);
   if (Right.is(tok::star) && Left.is(tok::l_paren))
     return false;
   if (Left.is(tok::l_square))
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index a940f70..18ba143 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -2265,10 +2265,13 @@
   verifyFormat("A<bool()> a;");
   verifyFormat("A<SomeType()> a;");
   verifyFormat("A<void(*)(int, std::string)> a;");
+  verifyFormat("A<void *(int)>;");
 
   // FIXME: Inconsistent.
   verifyFormat("int (*func)(void *);");
   verifyFormat("void f() { int(*func)(void *); }");
+
+  verifyGoogleFormat("A<void*(int)>;");
 }
 
 TEST_F(FormatTest, BreaksLongDeclarations) {
