Gypsy uses dbus-glib for dbus communication, and dbus-glib is not thread safe at all. And doesn't seem to get this fixed any time soon ( http://permalink.gmane.org/gmane.comp.freedesktop.dbus/14015 ).
This makes gypsy not thread safe as well. And this makes impossible to call gypsy from a worker thread (any thread other than gmainloop), because brings random crashes with assertion failures insude dbus-glib ( described here: http://lists.freedesktop.org/archives/dbus/2009-June/011554.html )
So in order to work properly in multithread environment, gypsy should move to another, thread-safe backend for dbus, like GDbus, suggested by maintainers of dbus-glib.
A workaround would be to use the DBus API directly with GDBus. The C wrapper library is purely for convenience.