diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h
index ff1f89c..b3141f2 100644
--- a/include/clang-c/Index.h
+++ b/include/clang-c/Index.h
@@ -687,7 +687,17 @@
    * clang_reparseTranslationUnit() will re-use the implicit
    * precompiled header to improve parsing performance.
    */
-  CXTranslationUnit_PrecompiledPreamble = 0x04
+  CXTranslationUnit_PrecompiledPreamble = 0x04,
+  
+  /**
+   * \brief Used to indicate that the translation unit should cache some
+   * code-completion results with each reparse of the source file.
+   *
+   * Caching of code-completion results is a performance optimization that
+   * introduces some overhead to reparsing but improves the performance of
+   * code-completion operations.
+   */
+  CXTranslationUnit_CacheCompletionResults = 0x08
 };
 
 /**
@@ -702,7 +712,7 @@
  * preamble) geared toward improving the performance of these routines. The
  * set of optimizations enabled may change from one version to the next.
  */
-CINDEX_LINKAGE unsigned clang_defaultEditingTranslationUnitOptions();
+CINDEX_LINKAGE unsigned clang_defaultEditingTranslationUnitOptions(void);
   
 /**
  * \brief Parse the given source file and the translation unit corresponding
@@ -760,6 +770,32 @@
 CINDEX_LINKAGE void clang_disposeTranslationUnit(CXTranslationUnit);
 
 /**
+ * \brief Flags that control the reparsing of translation units.
+ *
+ * The enumerators in this enumeration type are meant to be bitwise
+ * ORed together to specify which options should be used when
+ * reparsing the translation unit.
+ */
+enum CXReparse_Flags {
+  /**
+   * \brief Used to indicate that no special reparsing options are needed.
+   */
+  CXReparse_None = 0x0
+};
+ 
+/**
+ * \brief Returns the set of flags that is suitable for reparsing a translation
+ * unit.
+ *
+ * The set of flags returned provide options for
+ * \c clang_reparseTranslationUnit() by default. The returned flag
+ * set contains an unspecified set of optimizations geared toward common uses
+ * of reparsing. The set of optimizations enabled may change from one version 
+ * to the next.
+ */
+CINDEX_LINKAGE unsigned clang_defaultReparseOptions(CXTranslationUnit TU);
+
+/**
  * \brief Reparse the source files that produced this translation unit.
  *
  * This routine can be used to re-parse the source files that originally
@@ -788,6 +824,10 @@
  * CXUnsavedFile) are copied when necessary, so the client only needs to
  * guarantee their validity until the call to this function returns.
  * 
+ * \param options A bitset of options composed of the flags in CXReparse_Flags.
+ * The function \c clang_defaultReparseOptions() produces a default set of
+ * options recommended for most uses, based on the translation unit.
+ *
  * \returns 0 if the sources could be reparsed. A non-zero value will be
  * returned if reparsing was impossible, such that the translation unit is
  * invalid. In such cases, the only valid call for \p TU is 
@@ -795,7 +835,8 @@
  */
 CINDEX_LINKAGE int clang_reparseTranslationUnit(CXTranslationUnit TU,
                                                 unsigned num_unsaved_files,
-                                          struct CXUnsavedFile *unsaved_files);
+                                          struct CXUnsavedFile *unsaved_files,
+                                                unsigned options);
   
 /**
  * @}
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index be5084b..f95829b 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -639,7 +639,8 @@
   }
   
   for (trial = 0; trial < trials; ++trial) {
-    if (clang_reparseTranslationUnit(TU, num_unsaved_files, unsaved_files)) {
+    if (clang_reparseTranslationUnit(TU, num_unsaved_files, unsaved_files,
+                                     clang_defaultReparseOptions(TU))) {
       clang_disposeTranslationUnit(TU);
       free_remapped_files(unsaved_files, num_unsaved_files);
       clang_disposeIndex(Idx);
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 34de78c..0f43cf6 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -1459,9 +1459,14 @@
     delete static_cast<ASTUnit *>(CTUnit);
 }
 
+unsigned clang_defaultReparseOptions(CXTranslationUnit TU) {
+  return CXReparse_None;
+}
+
 int clang_reparseTranslationUnit(CXTranslationUnit TU,
                                  unsigned num_unsaved_files,
-                                 struct CXUnsavedFile *unsaved_files) {
+                                 struct CXUnsavedFile *unsaved_files,
+                                 unsigned options) {
   if (!TU)
     return 1;
   
diff --git a/tools/libclang/libclang.darwin.exports b/tools/libclang/libclang.darwin.exports
index a53595b..671d376 100644
--- a/tools/libclang/libclang.darwin.exports
+++ b/tools/libclang/libclang.darwin.exports
@@ -16,6 +16,7 @@
 _clang_defaultCodeCompleteOptions
 _clang_defaultEditingTranslationUnitOptions
 _clang_defaultDiagnosticDisplayOptions
+_clang_defaultReparseOptions
 _clang_disposeCodeCompleteResults
 _clang_disposeDiagnostic
 _clang_disposeIndex
diff --git a/tools/libclang/libclang.exports b/tools/libclang/libclang.exports
index 70aad53..9b2d0ad 100644
--- a/tools/libclang/libclang.exports
+++ b/tools/libclang/libclang.exports
@@ -16,6 +16,7 @@
 clang_defaultCodeCompleteOptions
 clang_defaultEditingTranslationUnitOptions
 clang_defaultDiagnosticDisplayOptions
+clang_defaultReparseOptions
 clang_disposeCodeCompleteResults
 clang_disposeDiagnostic
 clang_disposeIndex
