diff --git a/lib/Sema/SemaTemplateInstantiateExpr.cpp b/lib/Sema/SemaTemplateInstantiateExpr.cpp
index 8cd60ed..283b0d3 100644
--- a/lib/Sema/SemaTemplateInstantiateExpr.cpp
+++ b/lib/Sema/SemaTemplateInstantiateExpr.cpp
@@ -60,7 +60,7 @@
     OwningExprResult VisitShuffleVectorExpr(ShuffleVectorExpr *E);
     OwningExprResult VisitChooseExpr(ChooseExpr *E);
     OwningExprResult VisitVAArgExpr(VAArgExpr *E);
-    // FIXME: InitListExpr
+    OwningExprResult VisitInitListExpr(InitListExpr *E);
     // FIXME: DesignatedInitExpr
     // FIXME: ImplicitValueInitExpr
     // FIXME: ExtVectorElementExpr
@@ -581,6 +581,20 @@
 }
 
 Sema::OwningExprResult 
+TemplateExprInstantiator::VisitInitListExpr(InitListExpr *E) {
+  ExprVector Inits(SemaRef);
+  for (unsigned I = 0, N = E->getNumInits(); I != N; ++I) {
+    OwningExprResult Init = Visit(E->getInit(I));
+    if (Init.isInvalid())
+      return SemaRef.ExprError();
+    Inits.push_back(Init.takeAs<Expr>());
+  }
+
+  return SemaRef.ActOnInitList(E->getLBraceLoc(), move_arg(Inits),
+                               E->getRBraceLoc());
+}
+
+Sema::OwningExprResult 
 TemplateExprInstantiator::VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E) {
   bool isSizeOf = E->isSizeOf();
 
