          if (ND->getDeclName() != This->Name) {
            assert(!This->Name.getCXXNameType().isNull() && 
                   "Name mismatch without a type");
-@@ -5571,7 +5577,11 @@
+@@ -5571,7 +5574,11 @@
      ValueDecl *D = cast<ValueDecl>(GetDecl(PendingInstantiations[Idx++]));
      SourceLocation Loc
        = SourceLocation::getFromRawEncoding(PendingInstantiations[Idx++]);

   }  
   PendingInstantiations.clear();
 }
@@ -6468,6 +6478,9 @@
 }
 
 ASTReader::~ASTReader() {

+// RUN: %clang_cc1 -fmodules -x objective-c++ -fmodule-cache-path %t -emit-module -fmodule-name=redecl_templates_left %S/Inputs/module.map
+// RUN: %clang_cc1 -fmodules -x objective-c++ -fmodule-cache-path %t -emit-module -fmodule-name=redecl_templates_right %S/Inputs/module.map
+// RUN: %clang_cc1 -fmodules -fmodule-cache-path %t -w %s -emit-obj -o %t.obj
+// RUN: echo 'int call(); int main(int,char*[]) { return call(); }' | %clang -x objective-c++ -fmodules -fmodule-cache-path %t - -c -o %t_main.obj
+// RUN: %clang -lstdc++ %t_main.obj %t.obj
Index: tools/clang/test/Modules/Inputs/module.map
===================================================================
--- tools/clang/test/Modules/Inputs/module.map	(revision 161655)
