diff --git a/Driver/clang.cpp b/Driver/clang.cpp
index 4ef7400..6016b9a 100644
--- a/Driver/clang.cpp
+++ b/Driver/clang.cpp
@@ -770,6 +770,7 @@
                              TextDiagnostics &OurDiagnosticClient,
                              HeaderSearch &HeaderInfo,
                              const LangOptions &LangInfo) {
+  bool ClearSourceMgr = false;
   switch (ProgAction) {
   default:
     fprintf(stderr, "Unexpected program action!\n");
@@ -783,6 +784,7 @@
       PP.DumpToken(Tok, true);
       fprintf(stderr, "\n");
     } while (Tok.getKind() != tok::eof);
+    ClearSourceMgr = true;
     break;
   }
   case RunPreprocessorOnly: {        // Just lex as fast as we can, no output.
@@ -792,19 +794,23 @@
     do {
       PP.Lex(Tok);
     } while (Tok.getKind() != tok::eof);
+    ClearSourceMgr = true;
     break;
   }
     
   case PrintPreprocessedInput:       // -E mode.
     DoPrintPreprocessedInput(MainFileID, PP, LangInfo);
+    ClearSourceMgr = true;
     break;
     
   case ParseNoop:                    // -parse-noop
     ParseFile(PP, new MinimalAction(), MainFileID);
+    ClearSourceMgr = true;
     break;
     
   case ParsePrintCallbacks:
     ParseFile(PP, CreatePrintParserActionsAction(), MainFileID);
+    ClearSourceMgr = true;
     break;
   case ParseSyntaxOnly:              // -fsyntax-only
   case ParseAST:
@@ -826,8 +832,17 @@
     PP.PrintStats();
     PP.getIdentifierTable().PrintStats();
     HeaderInfo.PrintStats();
+    if (ClearSourceMgr)
+      SourceMgr.PrintStats();
     fprintf(stderr, "\n");
   }
+
+  // For a multi-file compilation, some things are ok with nuking the source 
+  // manager tables, other require stable fileid/macroid's across multiple
+  // files.
+  if (ClearSourceMgr) {
+    SourceMgr.clearIDTables();
+  }
 }
 
 static llvm::cl::list<std::string>
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index 414b178..f06a6fb 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -158,6 +158,11 @@
   SourceManager() {}
   ~SourceManager();
   
+  void clearIDTables() {
+    FileIDs.clear();
+    MacroIDs.clear();
+  }
+  
   /// createFileID - Create a new FileID that represents the specified file
   /// being #included from the specified IncludePosition.  This returns 0 on
   /// error and translates NULL into standard input.
