diff --git a/clang/Basic/SourceManager.cpp b/clang/Basic/SourceManager.cpp
index 990a4a0..357adfd 100644
--- a/clang/Basic/SourceManager.cpp
+++ b/clang/Basic/SourceManager.cpp
@@ -135,7 +135,7 @@
   const SrcMgr::FileIDInfo *FIDInfo = getFIDInfo(FileID);
 
   // For Macros, the physical loc is specified by the MacroTokenFileID.
-  if (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion)
+  while (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion)
     FIDInfo = &FileIDs[FIDInfo->u.MacroTokenFileID-1];
   
   return FIDInfo->IncludeLoc;
@@ -151,9 +151,10 @@
   
   // If this is a macro, we need to get the instantiation location.
   const SrcMgr::FileIDInfo *FIDInfo = getFIDInfo(FileID);
-  if (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
+  while (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
     Loc = FIDInfo->IncludeLoc;
     FileID = Loc.getFileID();
+    FIDInfo = getFIDInfo(FileID);
   }
   
   unsigned FilePos = getFilePos(Loc);
@@ -175,7 +176,7 @@
   
   // If this is a macro, we need to get the instantiation location.
   const SrcMgr::FileIDInfo *FIDInfo = getFIDInfo(FileID);
-  if (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
+  while (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
     Loc = FIDInfo->IncludeLoc;
     FIDInfo = getFIDInfo(Loc.getFileID());
   }
@@ -192,7 +193,7 @@
   unsigned FileID = Loc.getFileID();
   // If this is a macro, we need to get the instantiation location.
   const SrcMgr::FileIDInfo *FIDInfo = getFIDInfo(FileID);
-  if (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
+  while (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
     Loc = FIDInfo->IncludeLoc;
     FileID = Loc.getFileID();
     FIDInfo = getFIDInfo(FileID);
@@ -270,8 +271,10 @@
  
   // If this is a macro, we need to get the instantiation location.
   const SrcMgr::FileIDInfo *FIDInfo = getFIDInfo(Loc.getFileID());
-  if (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion)
-    return getFilePos(FIDInfo->IncludeLoc);
+  while (FIDInfo->IDType == SrcMgr::FileIDInfo::MacroExpansion) {
+    Loc = FIDInfo->IncludeLoc;
+    FIDInfo = getFIDInfo(Loc.getFileID());
+  }
   
   return getFilePos(Loc);
 }
