diff --git a/gir/everything.c b/gir/everything.c
index 9153560..a26d421 100644
--- a/gir/everything.c
+++ b/gir/everything.c
@@ -1597,6 +1597,47 @@ test_callback_thaw_notifications (void)
   return retval;
 }
 
+static GSList *async_callbacks = NULL;
+
+/**
+ * test_callback_async:
+ * @callback: (scope async):
+ *
+ **/
+void
+test_callback_async (TestCallbackUserData callback,
+                     gpointer user_data)
+{
+  CallbackInfo *info;
+
+  info = g_new(CallbackInfo, 1);
+  info->callback = callback;
+  info->user_data = user_data;
+
+  async_callbacks = g_slist_prepend(async_callbacks, info);
+}
+
+/**
+ * test_callback_thaw_async:
+ */
+int
+test_callback_thaw_async (void)
+{
+  int retval = 0;
+  GSList *node;
+
+  for (node = async_callbacks; node != NULL; node = node->next)
+    {
+      CallbackInfo *info = (CallbackInfo *)node->data;
+      retval = info->callback (info->user_data);
+      g_free (info);
+    }
+
+  g_slist_free (async_callbacks);
+  async_callbacks = NULL;
+  return retval;
+}
+
 /**
  * test_callback_infinite:
  * @callback: (scope infinite):
diff --git a/gir/everything.h b/gir/everything.h
index 436c74c..6eaa09e 100644
--- a/gir/everything.h
+++ b/gir/everything.h
@@ -291,6 +291,10 @@ int test_callback_destroy_notify (TestCallbackUserData callback,
                                   gpointer user_data,
                                   GDestroyNotify notify);
 int test_callback_thaw_notifications (void);
+
+void test_callback_async (TestCallbackUserData callback, gpointer user_data);
+int test_callback_thaw_async (void);
+
 int test_callback_infinite (TestCallbackUserData callback,
                            gpointer user_data);
 
