The ResourceData class currently uses KJobs in order to perform the low level tasks such as addProperty, removeProperty and setProperty. Since the KJobs are not synchronous, ResourceData runs a local event loop and waits till it finishes. Running a local event loop is bad practice. It would be better to have a blocking call via QDbusConnection::call( .. ). Relevant Code: nepomuk-core/libnepomukcore/resource/resourcedata.cpp The arguments will have to be passed in a QDBusMessage.