The #ifndef DBUS_HAS_RECURSIVE_MUTEX branch in dispatcher.h doesn't build because the MutexFn prototypes it declares (which return bool) conflict with their actual implementations (which return void) . I chose to simply remove this code and require recursive mutex support in dbus, which should be the norm nowadays. Patch attached.