diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index f629722..207edde 100644
--- a/lib/AST/DeclBase.cpp
+++ b/lib/AST/DeclBase.cpp
@@ -778,6 +778,14 @@
   } else {
     FirstDecl = LastDecl = D;
   }
+  
+  if (CXXRecordDecl *Record = dyn_cast<CXXRecordDecl>(this)) {
+    Decl *InnerD = D;
+    if (FunctionTemplateDecl *FunTmpl = dyn_cast<FunctionTemplateDecl>(D))
+      InnerD = FunTmpl->getTemplatedDecl();
+    if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(InnerD))
+      Record->addedConstructor(Constructor);
+  }
 }
 
 void DeclContext::addDecl(Decl *D) {
diff --git a/lib/AST/DeclCXX.cpp b/lib/AST/DeclCXX.cpp
index 88301c2..ffdb98d 100644
--- a/lib/AST/DeclCXX.cpp
+++ b/lib/AST/DeclCXX.cpp
@@ -259,9 +259,25 @@
 }
 
 void
-CXXRecordDecl::addedConstructor(ASTContext &Context,
-                                CXXConstructorDecl *ConDecl) {
-  assert(!ConDecl->isImplicit() && "addedConstructor - not for implicit decl");
+CXXRecordDecl::addedConstructor(CXXConstructorDecl *Constructor) {
+  // Ignore friends.
+  if (Constructor->getFriendObjectKind())
+    return;
+  
+  if (Constructor->isImplicit()) {
+    // If this is the implicit default constructor, note that we have now
+    // declared it.
+    if (Constructor->isDefaultConstructor())
+      data().DeclaredDefaultConstructor = true;
+    // If this is the implicit copy constructor, note that we have now
+    // declared it.
+    else if (Constructor->isCopyConstructor())
+      data().DeclaredCopyConstructor = true;
+    
+    // Nothing else to do for implicitly-declared constructors.
+    return;
+  }
+  
   // Note that we have a user-declared constructor.
   data().UserDeclaredConstructor = true;
 
@@ -285,7 +301,8 @@
 
   // Note when we have a user-declared copy constructor, which will
   // suppress the implicit declaration of a copy constructor.
-  if (ConDecl->isCopyConstructor()) {
+  if (!Constructor->getDescribedFunctionTemplate() &&
+      Constructor->isCopyConstructor()) {
     data().UserDeclaredCopyConstructor = true;
     data().DeclaredCopyConstructor = true;
     
@@ -293,7 +310,6 @@
     //   A copy constructor is trivial if it is implicitly declared.
     // FIXME: C++0x: don't do this for "= default" copy constructors.
     data().HasTrivialCopyConstructor = false;
-    
   }
 }
 
