diff -rup pygobject-2.21.5.orig/gi/pygi-invoke.c pygobject-2.21.5.new/gi/pygi-invoke.c
--- pygobject-2.21.5.orig/gi/pygi-invoke.c	2010-07-12 09:41:20.000000000 +0100
+++ pygobject-2.21.5.new/gi/pygi-invoke.c	2010-09-08 10:16:25.042587138 +0100
@@ -593,9 +593,10 @@ _invoke_function (struct invocation_stat
     gint retval;
 
     error = NULL;
-
+    pyg_begin_allow_threads;
     retval = g_function_info_invoke ( (GIFunctionInfo *) function_info,
                                       state->in_args, state->n_in_args, state->out_args, state->n_out_args, &state->return_arg, &error);
+    pyg_end_allow_threads;
     if (!retval) {
         g_assert (error != NULL);
         /* TODO: raise the right error, out of the error domain. */
