diff --git a/lib/Format/ContinuationIndenter.cpp b/lib/Format/ContinuationIndenter.cpp
index 87c0222..8b0baea 100644
--- a/lib/Format/ContinuationIndenter.cpp
+++ b/lib/Format/ContinuationIndenter.cpp
@@ -192,6 +192,8 @@
                                                unsigned ExtraSpaces) {
   const FormatToken &Current = *State.NextToken;
   const FormatToken &Previous = *State.NextToken->Previous;
+  const FormatToken *PreviousNonComment =
+      State.NextToken->getPreviousNonComment();
 
   // Extra penalty that needs to be added because of the way certain line
   // breaks are chosen.
@@ -253,7 +255,8 @@
       State.Column = State.Stack.back().QuestionColumn;
     } else if (Previous.is(tok::comma) && State.Stack.back().VariablePos != 0) {
       State.Column = State.Stack.back().VariablePos;
-    } else if (Previous.ClosesTemplateDeclaration ||
+    } else if ((PreviousNonComment &&
+                PreviousNonComment->ClosesTemplateDeclaration) ||
                ((Current.Type == TT_StartOfName ||
                  Current.is(tok::kw_operator)) &&
                 State.ParenLevel == 0 &&
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index 0175413..be2a45d 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -3500,6 +3500,9 @@
 TEST_F(FormatTest, WrapsTemplateDeclarations) {
   verifyFormat("template <typename T>\n"
                "virtual void loooooooooooongFunction(int Param1, int Param2);");
+  verifyFormat("template <typename T>\n"
+               "// T should be one of {A, B}.\n"
+               "virtual void loooooooooooongFunction(int Param1, int Param2);");
   verifyFormat(
       "template <typename T>\n"
       "using comment_to_xml_conversion = comment_to_xml_conversion<T, int>;");
