diff --git a/include/clang/Frontend/ASTUnit.h b/include/clang/Frontend/ASTUnit.h
index 065fc44..fc27bb9 100644
--- a/include/clang/Frontend/ASTUnit.h
+++ b/include/clang/Frontend/ASTUnit.h
@@ -467,7 +467,7 @@
 
   const FileSystemOptions &getFileSystemOpts() const { return FileSystemOpts; }
 
-  const std::string &getOriginalSourceFileName() {
+  const StringRef getOriginalSourceFileName() {
     return OriginalSourceFile;
   }
 
diff --git a/include/clang/Serialization/ASTReader.h b/include/clang/Serialization/ASTReader.h
index 36eae76..c0d93c3 100644
--- a/include/clang/Serialization/ASTReader.h
+++ b/include/clang/Serialization/ASTReader.h
@@ -900,7 +900,7 @@
   /// into account all the necessary relocations.
   const FileEntry *getFileEntry(StringRef filename);
 
-  StringRef MaybeAddSystemRootToFilename(ModuleFile &M, std::string &Filename);
+  void MaybeAddSystemRootToFilename(ModuleFile &M, std::string &Filename);
 
   ASTReadResult ReadASTCore(StringRef FileName, ModuleKind Type,
                             ModuleFile *ImportedBy,
@@ -1163,7 +1163,7 @@
 
   /// \brief Retrieve the name of the original source file name for the primary
   /// module file.
-  const std::string &getOriginalSourceFile() { 
+  StringRef getOriginalSourceFile() {
     return ModuleMgr.getPrimaryModule().OriginalSourceFileName; 
   }
 
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index 4857856..874d2c4 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -1679,19 +1679,19 @@
 /// \brief If we are loading a relocatable PCH file, and the filename is
 /// not an absolute path, add the system root to the beginning of the file
 /// name.
-StringRef ASTReader::MaybeAddSystemRootToFilename(ModuleFile &M, 
-                                                  std::string &Filename) {
+void ASTReader::MaybeAddSystemRootToFilename(ModuleFile &M,
+                                             std::string &Filename) {
   // If this is not a relocatable PCH file, there's nothing to do.
   if (!M.RelocatablePCH)
-    return Filename;
+    return;
 
   if (Filename.empty() || llvm::sys::path::is_absolute(Filename))
-    return Filename;
+    return;
 
   if (isysroot.empty()) {
     // If no system root was given, default to '/'
     Filename.insert(Filename.begin(), '/');
-    return Filename;
+    return;
   }
 
   unsigned Length = isysroot.size();
@@ -1699,7 +1699,6 @@
     Filename.insert(Filename.begin(), '/');
 
   Filename.insert(Filename.begin(), isysroot.begin(), isysroot.end());
-  return Filename;
 }
 
 ASTReader::ASTReadResult
