diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h
index bf99568..40d3baf 100644
--- a/include/clang-c/Index.h
+++ b/include/clang-c/Index.h
@@ -301,6 +301,13 @@
                                                   CXFile file,
                                                   unsigned line,
                                                   unsigned column);
+/**
+ * \brief Retrieves the source location associated with a given character offset
+ * in a particular translation unit.
+ */
+CINDEX_LINKAGE CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu,
+                                                           CXFile file,
+                                                           unsigned offset);
 
 /**
  * \brief Retrieve a NULL (invalid) source range.
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 1d7efe4..722e2cb 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -2266,6 +2266,27 @@
     = CXXUnit->getSourceManager().getLocation(
                                         static_cast<const FileEntry *>(file),
                                               line, column);
+  if (SLoc.isInvalid()) return clang_getNullLocation();
+
+  return cxloc::translateSourceLocation(CXXUnit->getASTContext(), SLoc);
+}
+
+CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu,
+                                            CXFile file,
+                                            unsigned offset) {
+  if (!tu || !file)
+    return clang_getNullLocation();
+  
+  ASTUnit *CXXUnit = static_cast<ASTUnit *>(tu);
+  SourceLocation Start 
+    = CXXUnit->getSourceManager().getLocation(
+                                        static_cast<const FileEntry *>(file),
+                                              1, 1);
+  if (Start.isInvalid()) return clang_getNullLocation();
+
+  SourceLocation SLoc = Start.getFileLocWithOffset(offset);
+
+  if (SLoc.isInvalid()) return clang_getNullLocation();
 
   return cxloc::translateSourceLocation(CXXUnit->getASTContext(), SLoc);
 }
diff --git a/tools/libclang/libclang.darwin.exports b/tools/libclang/libclang.darwin.exports
index c63ee4d..dbb335f 100644
--- a/tools/libclang/libclang.darwin.exports
+++ b/tools/libclang/libclang.darwin.exports
@@ -71,6 +71,7 @@
 _clang_getInclusions
 _clang_getInstantiationLocation
 _clang_getLocation
+_clang_getLocationForOffset
 _clang_getNullCursor
 _clang_getNullLocation
 _clang_getNullRange
diff --git a/tools/libclang/libclang.exports b/tools/libclang/libclang.exports
index 2af9a34..06e5a8b 100644
--- a/tools/libclang/libclang.exports
+++ b/tools/libclang/libclang.exports
@@ -71,6 +71,7 @@
 clang_getInclusions
 clang_getInstantiationLocation
 clang_getLocation
+clang_getLocationForOffset
 clang_getNullCursor
 clang_getNullLocation
 clang_getNullRange
