 ===================================================================
 --- tools/clang/lib/Serialization/ASTReader.cpp	(revision 161655)
 +++ tools/clang/lib/Serialization/ASTReader.cpp	(working copy)
-@@ -4640,6 +4640,9 @@
- }
- 
- Decl *ASTReader::GetDecl(DeclID ID) {
-+  if (ID == 42710) 
-+    printf("br cond here\n");
-+
-   if (ID < NUM_PREDEF_DECL_IDS) {    
-     switch ((PredefinedDeclIDs)ID) {
-     case PREDEF_DECL_NULL_ID:
-@@ -4930,6 +4933,9 @@
+@@ -4930,6 +4930,9 @@
          if (!ND)
            continue;
  

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

===================================================================
--- tools/clang/test/Modules/redecl-templates.mm	(revision 0)
+++ tools/clang/test/Modules/redecl-templates.mm	(revision 0)
@@ -0,0 +1,29 @@
+// template <typename T> int foo(T);
+// int usesfootoo() { return foo((float)1); }
+// template <typename T> int foo(T) { return 0; }
