Looking at the original it's ripped from (http://talk.maemo.org/showpost.php?p...7&postcount=14), it's using dbus_g_proxy_call_no_reply, whilst you're using dbus_g_proxy_call. Because the latter also allows you to specify pointers for storing the values returned by the call, you must add another G_TYPE_INVALID (like when you're finished speciying the "in" arguments) to specify when you're done. P.S. dbus_g_proxy_call supports GError. Use it