diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index d5845ba..b29a1ac 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -425,8 +425,8 @@
     return SourceLocation::getFileLoc(FileOffset);
   }
   
-  /// Given a SourceLocation object, return the instantiation location
-  /// referenced by the ID.
+  /// getInstantiationLoc - Given a SourceLocation object, return the
+  /// instantiation location referenced by the ID.
   SourceLocation getInstantiationLoc(SourceLocation Loc) const {
     // Handle the non-mapped case inline, defer to out of line code to handle
     // instantiations.
@@ -439,6 +439,12 @@
   std::pair<SourceLocation,SourceLocation>
   getImmediateInstantiationRange(SourceLocation Loc) const;
   
+  /// getInstantiationRange - Given a SourceLocation object, return the
+  /// range of tokens covered by the instantiation in the ultimate file.
+  std::pair<SourceLocation,SourceLocation>
+  getInstantiationRange(SourceLocation Loc) const;
+  
+  
   /// getSpellingLoc - Given a SourceLocation object, return the spelling
   /// location referenced by the ID.  This is the place where the characters
   /// that make up the lexed token can be found.
diff --git a/lib/Basic/SourceManager.cpp b/lib/Basic/SourceManager.cpp
index 71bda5b..88980ef 100644
--- a/lib/Basic/SourceManager.cpp
+++ b/lib/Basic/SourceManager.cpp
@@ -606,6 +606,24 @@
   return II.getInstantiationLocRange();
 }
 
+/// getInstantiationRange - Given a SourceLocation object, return the
+/// range of tokens covered by the instantiation in the ultimate file.
+std::pair<SourceLocation,SourceLocation>
+SourceManager::getInstantiationRange(SourceLocation Loc) const {
+  if (Loc.isFileID()) return std::make_pair(Loc, Loc);
+  
+  std::pair<SourceLocation,SourceLocation> Res =
+    getImmediateInstantiationRange(Loc);
+  
+  // Fully resolve the start and end locations to their ultimate instantiation
+  // points.
+  while (!Res.first.isFileID())
+    Res.first = getImmediateInstantiationRange(Res.first).first;
+  while (!Res.second.isFileID())
+    Res.second = getImmediateInstantiationRange(Res.second).second;
+  return Res;
+}
+
 
 
 //===----------------------------------------------------------------------===//
diff --git a/lib/Lex/PPMacroExpansion.cpp b/lib/Lex/PPMacroExpansion.cpp
index 33b5ef8..a8b09e5 100644
--- a/lib/Lex/PPMacroExpansion.cpp
+++ b/lib/Lex/PPMacroExpansion.cpp
@@ -471,9 +471,7 @@
     // can matter for a function-like macro that expands to contain __LINE__.
     // Skip down through instantiation points until we find a file loc for the
     // end of the instantiation history.
-    while (!Loc.isFileID())
-      Loc = SourceMgr.getImmediateInstantiationRange(Loc).second;
-    
+    Loc = SourceMgr.getInstantiationRange(Loc).second;
     PresumedLoc PLoc = SourceMgr.getPresumedLoc(Loc);
     
     // __LINE__ expands to a simple numeric value.  Add a space after it so that
