Index: gobject/pygobject.c
===================================================================
--- gobject/pygobject.c	(revision 975)
+++ gobject/pygobject.c	(working copy)
@@ -291,7 +291,9 @@
     }
     
     g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+    pyg_begin_allow_threads;
     g_object_get_property(self->pygobject->obj, attr_name, &value);
+    pyg_end_allow_threads;
     ret = pyg_param_gvalue_as_pyobject(&value, TRUE, pspec);
     g_value_unset(&value);
     
@@ -1066,8 +1068,11 @@
         if (self->inst_dict) {
             g_object_remove_toggle_ref(self->obj, pyg_toggle_notify, self);
             self->private_flags.flags &= ~PYGOBJECT_USING_TOGGLE_REF;
-        } else
+        } else {
+            pyg_begin_allow_threads;
             g_object_unref(self->obj);
+            pyg_end_allow_threads;
+        }
         self->obj = NULL;
     }
     Py_CLEAR(self->inst_dict);
@@ -1197,7 +1202,9 @@
 	return NULL;
     }
     g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
+    pyg_begin_allow_threads;
     g_object_get_property(self->obj, param_name, &value);
+    pyg_end_allow_threads;
     ret = pyg_param_gvalue_as_pyobject(&value, TRUE, pspec);
     g_value_unset(&value);
     return ret;
@@ -1247,7 +1254,9 @@
         }
         g_value_init(&value, G_PARAM_SPEC_VALUE_TYPE(pspec));
 
+        pyg_begin_allow_threads;
         g_object_get_property(self->obj, property_name, &value);
+        pyg_end_allow_threads;
 
         item = pyg_value_as_pyobject(&value, TRUE);
         PyTuple_SetItem(tuple, i, item);
