diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index b7f028d..4525e4f 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -339,7 +339,7 @@
 }
 
 RangeComparisonResult CursorVisitor::CompareRegionOfInterest(CXSourceRange CXR) {
-  return CompareRegionOfInterest(cxloc::translateSourceRange(CXR));
+  return CompareRegionOfInterest(cxloc::translateCXSourceRange(CXR));
 }
 
 /// \brief Visit the given cursor and, if requested by the visitor,
@@ -370,7 +370,7 @@
   // we're done.
   if (RegionOfInterest.isValid() && !CheckedRegionOfInterest) {
     CXSourceRange Range = clang_getCursorExtent(Cursor);
-    if (cxloc::translateSourceRange(Range).isInvalid() || 
+    if (cxloc::translateCXSourceRange(Range).isInvalid() || 
         CompareRegionOfInterest(Range))
       return false;
   }
@@ -2003,7 +2003,7 @@
   if (!CXXUnit || !Tokens || !NumTokens)
     return;
   
-  SourceRange R = cxloc::translateSourceRange(Range);
+  SourceRange R = cxloc::translateCXSourceRange(Range);
   if (R.isInvalid())
     return;
   
diff --git a/tools/CIndex/CXSourceLocation.h b/tools/CIndex/CXSourceLocation.h
index 1efe4c6..8bfc6f9 100644
--- a/tools/CIndex/CXSourceLocation.h
+++ b/tools/CIndex/CXSourceLocation.h
@@ -65,7 +65,7 @@
   return SourceLocation::getFromRawEncoding(L.int_data);
 }
 
-static inline SourceRange translateSourceRange(CXSourceRange R) {
+static inline SourceRange translateCXSourceRange(CXSourceRange R) {
   return SourceRange(SourceLocation::getFromRawEncoding(R.begin_int_data),
                      SourceLocation::getFromRawEncoding(R.end_int_data));
 }
