diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index 1ef8e92..30700d8 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -1,14 +1,18 @@
+/* c-index-test.c */
 
 #include "clang-c/Index.h"
 #include <stdio.h>
 
-static void PrintDecls(CXTranslationUnit Unit, CXCursor Cursor) {
+static void PrintDecls(CXTranslationUnit Unit, CXCursor Cursor,
+                       CXClientData Filter) {
   if (clang_isDeclaration(Cursor.kind)) {
-    printf("%s => %s", clang_getKindSpelling(Cursor.kind),
-                       clang_getDeclSpelling(Cursor.decl));
-    printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
-                            clang_getCursorLine(Cursor),
-                            clang_getCursorColumn(Cursor));
+    if (Cursor.kind == *(enum CXCursorKind *)Filter) {
+      printf("%s => %s", clang_getKindSpelling(Cursor.kind),
+                         clang_getDeclSpelling(Cursor.decl));
+      printf(" (%s,%d:%d)\n", clang_getCursorSource(Cursor),
+                              clang_getCursorLine(Cursor),
+                              clang_getCursorColumn(Cursor));
+    }
   }
 }
 
@@ -18,6 +22,9 @@
 int main(int argc, char **argv) {
   CXIndex Idx = clang_createIndex();
   CXTranslationUnit TU = clang_createTranslationUnit(Idx, argv[1]);
-  clang_loadTranslationUnit(TU, PrintDecls);
+  
+  /* Use client data to only print ObjC interfaces */
+  enum CXCursorKind filterData = CXCursor_ObjCInterfaceDecl;
+  clang_loadTranslationUnit(TU, PrintDecls, &filterData);
   return 1;
 }
