diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index 9f4a3ed..8e141e0 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -121,6 +121,10 @@ void foo_sub_interface_do_bar (FooSubInterface *self)
   FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
 }
 
+void foo_sub_interface_do_baz (FooSubInterface *self, GCallback callback, gpointer user_data)
+{
+  FOO_SUBINTERFACE_GET_INTERFACE(self)->do_baz (self, callback, user_data);
+}
 
 G_DEFINE_TYPE_EXTENDED (FooObject, foo_object, G_TYPE_OBJECT,
 			0, G_IMPLEMENT_INTERFACE (FOO_TYPE_INTERFACE,
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index 8687c94..775283c 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -67,11 +67,15 @@ struct _FooSubInterfaceIface
   /* virtual table */
 
   void (*do_bar) (FooSubInterface *self);
+  void (*do_baz) (FooSubInterface *, GCallback, gpointer);
 };
 
 GType                 foo_sub_interface_get_type       (void) G_GNUC_CONST;
 
 void foo_sub_interface_do_bar (FooSubInterface *self);
+void foo_sub_interface_do_baz (FooSubInterface *self,
+                               GCallback callback,
+                               gpointer data);
 
 struct _FooObject
 {
