diff --git a/tests/repository/gitestrepo.c b/tests/repository/gitestrepo.c
index a65116b..0393507 100644
--- a/tests/repository/gitestrepo.c
+++ b/tests/repository/gitestrepo.c
@@ -121,5 +121,24 @@ main(int argc, char **argv)
     g_assert (strcmp (g_base_info_get_name ((GIBaseInfo*)invoker), "get_display") == 0);
   }
 
+  girdir = g_build_filename (g_getenv ("top_builddir"), "tests", "scanner", NULL);
+  g_irepository_prepend_search_path (girdir);
+  g_free (girdir);
+
+  ret = g_irepository_require (repo, "foo", NULL, 0, &error);
+  g_assert (ret);
+  g_assert (error == NULL);
+
+  info = g_irepository_find_by_name (repo, "foo", "TestStructWithoutPtr");
+  g_assert (info != NULL);
+  info = g_struct_info_get_field (info, 0);
+  info = g_field_info_get_type (info);
+  g_assert (!g_type_info_is_pointer (info));
+
+  info = g_irepository_find_by_name (repo, "foo", "TestStructWithPtr");
+  info = g_struct_info_get_field (info, 0);
+  info = g_field_info_get_type (info);
+  g_assert (g_type_info_is_pointer (info));
+
   exit(0);
 }
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index 61c2ca4..7cb1e09 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -391,5 +391,16 @@ typedef enum {
 } FooSkippable;
 void foo_skip_me (FooSkippable fs);
 
+typedef struct {
+	int foo;
+} TestStruct;
+
+typedef struct {
+	TestStruct struct_;
+} TestStructWithoutPtr;
+
+typedef struct {
+	TestStruct *struct_;
+} TestStructWithPtr;
 
 #endif /* __FOO_OBJECT_H__ */
