diff --git a/lib/Basic/SourceLocation.cpp b/lib/Basic/SourceLocation.cpp
index 41ada63..c68cb8b 100644
--- a/lib/Basic/SourceLocation.cpp
+++ b/lib/Basic/SourceLocation.cpp
@@ -98,9 +98,8 @@
   return SrcMgr->isInSystemHeader(Loc);
 }
 
-
-const char * FullSourceLoc::getCharacterData() const {
-  assert (isValid());
+const char *FullSourceLoc::getCharacterData() const {
+  assert(isValid());
   return SrcMgr->getCharacterData(Loc);
 }
 
@@ -109,10 +108,6 @@
   return SrcMgr->getBuffer(Loc.getFileID());
 }
 
-unsigned FullSourceLoc::getCanonicalFileID() const {
-  return SrcMgr->getCanonicalFileID(Loc);
-}
-
 void FullSourceLoc::dump() const {
   if (!isValid()) {
     fprintf(stderr, "Invalid Loc\n");
diff --git a/lib/Driver/HTMLDiagnostics.cpp b/lib/Driver/HTMLDiagnostics.cpp
index 4128816..7f20e1a 100644
--- a/lib/Driver/HTMLDiagnostics.cpp
+++ b/lib/Driver/HTMLDiagnostics.cpp
@@ -124,8 +124,7 @@
   if (noDir)
     return;
   
-  SourceManager& SMgr = D.begin()->getLocation().getManager();
-
+  SourceManager &SMgr = D.begin()->getLocation().getManager();
   unsigned FileID = 0;
   bool FileIDInitialized = false;
   
@@ -134,10 +133,9 @@
     FullSourceLoc L = I->getLocation().getInstantiationLoc();
     
     if (!FileIDInitialized) {
-      FileID = L.getCanonicalFileID();
+      FileID = SMgr.getCanonicalFileID(L.getLocation());
       FileIDInitialized = true;
-    }
-    else if (L.getCanonicalFileID() != FileID)
+    } else if (SMgr.getCanonicalFileID(L.getLocation()) != FileID)
       return; // FIXME: Emit a warning?
     
     // Check the source ranges.
@@ -345,7 +343,7 @@
 
   assert (&LPos.getManager() == &SM && "SourceManagers are different!");
   
-  if (LPos.getCanonicalFileID() != BugFileID)
+  if (SM.getCanonicalFileID(LPos.getLocation()) != BugFileID)
     return;
   
   const llvm::MemoryBuffer *Buf = SM.getBuffer(FileID);
