diff --git a/lib/AST/ExprCXX.cpp b/lib/AST/ExprCXX.cpp
index dc0b573..c280861 100644
--- a/lib/AST/ExprCXX.cpp
+++ b/lib/AST/ExprCXX.cpp
@@ -274,9 +274,10 @@
   return new (C) CXXDestroyExpr(vd, C.VoidTy);
 }
 
-CXXExprWithCleanup::CXXExprWithCleanup(Expr *subexpr, CXXTempVarDecl **decls, 
-                                       unsigned numdecls)
-: Expr(CXXExprWithCleanupClass, subexpr->getType(),
+CXXExprWithTemporaries::CXXExprWithTemporaries(Expr *subexpr, 
+                                               CXXTempVarDecl **decls, 
+                                               unsigned numdecls)
+: Expr(CXXExprWithTemporariesClass, subexpr->getType(),
        subexpr->isTypeDependent(), subexpr->isValueDependent()), 
   SubExpr(subexpr), Decls(0), NumDecls(numdecls) {
   if (NumDecls > 0) {
@@ -286,7 +287,7 @@
   }
 }
 
-CXXExprWithCleanup::~CXXExprWithCleanup() {
+CXXExprWithTemporaries::~CXXExprWithTemporaries() {
   delete[] Decls;
 }
 
@@ -306,7 +307,7 @@
   return child_iterator();
 }
 
-// CXXExprWithCleanup
-Stmt::child_iterator CXXExprWithCleanup::child_begin() { return &SubExpr; }
-Stmt::child_iterator CXXExprWithCleanup::child_end() { return &SubExpr + 1; }
+// CXXExprWithTemporaries
+Stmt::child_iterator CXXExprWithTemporaries::child_begin() { return &SubExpr; }
+Stmt::child_iterator CXXExprWithTemporaries::child_end() { return &SubExpr + 1;}
 
diff --git a/lib/AST/StmtPrinter.cpp b/lib/AST/StmtPrinter.cpp
index 1a74937..c083efa 100644
--- a/lib/AST/StmtPrinter.cpp
+++ b/lib/AST/StmtPrinter.cpp
@@ -1105,7 +1105,7 @@
   // Nothing to print.
 }
 
-void StmtPrinter::VisitCXXExprWithCleanup(CXXExprWithCleanup *E) {
+void StmtPrinter::VisitCXXExprWithTemporaries(CXXExprWithTemporaries *E) {
   // Just forward to the sub expression.
   PrintExpr(E->getSubExpr());
 }
