diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp
index e30e2a8..fcca977 100644
--- a/lib/Basic/SourceManager.cpp
+++ b/lib/Basic/SourceManager.cpp
@@ -28,12 +28,6 @@
 // SourceManager Helper Classes
 //===--------------------------------------------------------------------===//
 
-// This (temporary) directive toggles between lazy and eager creation of
-// MemBuffers.  This directive is not permanent, and is here to test a few
-// potential optimizations in PTH.  Once it is clear whether eager or lazy
-// creation of MemBuffers is better this directive will get removed.
-#define LAZY
-
 ContentCache::~ContentCache() {
   delete Buffer;
   delete [] SourceLineCache;
@@ -54,15 +48,13 @@
   return Entry ? Entry->getSize() : Buffer->getBufferSize();
 }
 
-const llvm::MemoryBuffer* ContentCache::getBuffer() const {  
-#ifdef LAZY
+const llvm::MemoryBuffer *ContentCache::getBuffer() const {  
   // Lazily create the Buffer for ContentCaches that wrap files.
   if (!Buffer && Entry) {
     // FIXME: Should we support a way to not have to do this check over
     //   and over if we cannot open the file?
     Buffer = MemoryBuffer::getFile(Entry->getName(), 0, Entry->getSize());
   }
-#endif
   return Buffer;
 }
 
@@ -83,18 +75,8 @@
   if (I != FileInfos.end() && I->Entry == FileEnt)
     return &*I;
   
-  // Nope, get information.
-#ifndef LAZY
-  const MemoryBuffer *File =
-    MemoryBuffer::getFile(FileEnt->getName(), 0, FileEnt->getSize());
-  if (File == 0)
-    return 0;
-#endif
-  
+  // Nope, create a new Cache entry.
   ContentCache& Entry = const_cast<ContentCache&>(*FileInfos.insert(I,FileEnt));
-#ifndef LAZY
-  Entry.setBuffer(File);
-#endif
   Entry.SourceLineCache = 0;
   Entry.NumLines = 0;
   return &Entry;
