diff --git a/test/Index/annotate-tokens-pp.c b/test/Index/annotate-tokens-pp.c
index 485786e..5527b45 100644
--- a/test/Index/annotate-tokens-pp.c
+++ b/test/Index/annotate-tokens-pp.c
@@ -16,7 +16,7 @@
 // CHECK: Identifier: "honk" [2:31 - 2:35] preprocessing directive=
 // CHECK: Punctuation: "," [2:35 - 2:36] preprocessing directive=
 // CHECK: Identifier: "warble" [2:36 - 2:42] preprocessing directive=
-// CHECK: Punctuation: ")" [2:42 - 2:43] preprocessing directive=
+// CHECK: Punctuation: ")" [2:42 - 2:43] preprocesggsing directive=
 // CHECK: Punctuation: "#" [3:1 - 3:2] preprocessing directive=
 // CHECK: Identifier: "define" [3:2 - 3:8] preprocessing directive=
 // CHECK: Identifier: "BAR" [3:9 - 3:12] macro definition=BAR
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index 47d156c..befba3c 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -2066,22 +2066,22 @@
   public:
     explicit ComparePreprocessedEntityLocation(SourceManager &SM) : SM(SM) { }
 
-    bool operator()(const PreprocessedEntity *Entity, SourceLocation Loc) {
+    bool operator()(const PreprocessedEntity *Entity, SourceLocation Loc) const{
       return SM.isBeforeInTranslationUnit(Entity->getSourceRange().getEnd(), 
                                           Loc);
     }
 
-    bool operator()(SourceLocation Loc, const PreprocessedEntity *Entity) {
+    bool operator()(SourceLocation Loc, const PreprocessedEntity *Entity) const{
       return SM.isBeforeInTranslationUnit(Loc, 
                                           Entity->getSourceRange().getBegin());
     }
 
-    bool operator()(const PreprocessedEntity *Entity, SourceRange R) {
+    bool operator()(const PreprocessedEntity *Entity, SourceRange R) const {
       return SM.isBeforeInTranslationUnit(Entity->getSourceRange().getEnd(), 
                                           R.getBegin());
     }
 
-    bool operator()(SourceRange R, const PreprocessedEntity *Entity) {
+    bool operator()(SourceRange R, const PreprocessedEntity *Entity) const {
       return SM.isBeforeInTranslationUnit(R.getEnd(), 
                                           Entity->getSourceRange().getBegin());
     }
