diff --git a/lib/Frontend/CompilerInstance.cpp b/lib/Frontend/CompilerInstance.cpp
index ea2c3bd..0a32cb9 100644
--- a/lib/Frontend/CompilerInstance.cpp
+++ b/lib/Frontend/CompilerInstance.cpp
@@ -647,13 +647,14 @@
     llvm::EnableStatistics();
 
   for (unsigned i = 0, e = getFrontendOpts().Inputs.size(); i != e; ++i) {
-    const std::string &InFile = getFrontendOpts().Inputs[i].second;
-
+    InputKind InKind = getFrontendOpts().Inputs[i].first;
+    std::string InFile = getFrontendOpts().Inputs[i].second;
+    
     // Reset the ID tables if we are reusing the SourceManager.
     if (hasSourceManager())
       getSourceManager().clearIDTables();
 
-    if (Act.BeginSourceFile(*this, InFile, getFrontendOpts().Inputs[i].first)) {
+    if (Act.BeginSourceFile(*this, InFile, InKind)) {
       Act.Execute();
       Act.EndSourceFile();
     }
@@ -698,7 +699,7 @@
 namespace {
   struct CompileModuleData {
     CompilerInstance &Instance;
-    GeneratePCHAction &CreateModuleAction;
+    GenerateModuleAction &CreateModuleAction;
   };
 }
 
@@ -1023,7 +1024,7 @@
                              /*ShouldCloneClient=*/true);
 
   // Construct a module-generating action.
-  GeneratePCHAction CreateModuleAction(true);
+  GenerateModuleAction CreateModuleAction;
 
   // Execute the action to actually build the module in-place. Use a separate
   // thread so that we get a stack large enough.
