diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp
index 6fe3fc0..f325121 100644
--- a/lib/Rewrite/HTMLRewrite.cpp
+++ b/lib/Rewrite/HTMLRewrite.cpp
@@ -22,7 +22,6 @@
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/raw_ostream.h"
-#include <cstdio>
 using namespace clang;
 
 
@@ -44,15 +43,10 @@
   // Include the whole end token in the range.
   EOffset += Lexer::MeasureTokenLength(E, R.getSourceMgr(), R.getLangOpts());
 
-  llvm::StringRef FileName;
-  std::string ErrorStr;
-  const char *BufferStart = SM.getBufferData(FID, FileName, ErrorStr).first;
-  if (!BufferStart) {
-    // FIXME: Add a diagnostic object somewhere?
-    fprintf(stderr, "error: cannot open file '%s': %s\n", 
-            FileName.str().c_str(), ErrorStr.c_str());
+  bool Invalid = false;
+  const char *BufferStart = SM.getBufferData(FID, &Invalid).first;
+  if (Invalid)
     return;
-  }
   
   HighlightRange(R.getEditBuffer(FID), BOffset, EOffset,
                  BufferStart, StartTag, EndTag);
diff --git a/lib/Rewrite/Rewriter.cpp b/lib/Rewrite/Rewriter.cpp
index 50f9fa1..9744496 100644
--- a/lib/Rewrite/Rewriter.cpp
+++ b/lib/Rewrite/Rewriter.cpp
@@ -18,7 +18,6 @@
 #include "clang/Lex/Lexer.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/raw_ostream.h"
-#include <cstdio>
 using namespace clang;
 
 void RewriteBuffer::RemoveText(unsigned OrigOffset, unsigned Size) {
@@ -166,17 +165,7 @@
     return I->second;
   I = RewriteBuffers.insert(I, std::make_pair(FID, RewriteBuffer()));
 
-  llvm::StringRef FileName;
-  std::string ErrorStr;
-  
-  std::pair<const char*, const char*> MB
-    = SourceMgr->getBufferData(FID, FileName, ErrorStr);
-  if (!MB.first) {
-    // FIXME: Add a diagnostic object somewhere?
-    fprintf(stderr, "error: cannot open file '%s': %s\n", 
-            FileName.str().c_str(), ErrorStr.c_str());
-  }
-  
+  std::pair<const char*, const char*> MB = SourceMgr->getBufferData(FID);
   I->second.Initialize(MB.first, MB.second);
 
   return I->second;
