diff -ur kdelibs-4.0.1/kdecore/services/kservice.cpp kdelibs-4.0.1-dcop-servicetype/kdecore/services/kservice.cpp --- kdelibs-4.0.1/kdecore/services/kservice.cpp 2008-01-05 01:00:34.000000000 +0100 +++ kdelibs-4.0.1-dcop-servicetype/kdecore/services/kservice.cpp 2008-02-19 20:21:57.000000000 +0100 @@ -194,7 +194,12 @@ //Compatibility if( dbusStartupType.isEmpty() && desktopGroup.hasKey("X-DCOP-ServiceType")) { - dbusStartupType = desktopGroup.readEntry("X-DCOP-ServiceType").toLower(); + QString dcopStartupType = desktopGroup.readEntry("X-DCOP-ServiceType").toLower(); + // We can't use unique or multi because KLauncher will try to use D-Bus instead of DCOP on it. + // Only "wait" is safe (only waits for the process to complete, no DCOP or D-Bus involved). + // We use the default "none" otherwise. + if (dcopStartupType == "wait") + dbusStartupType = dcopStartupType; entryMap.remove("X-DCOP-ServiceType"); } entryMap.remove("X-DBUS-StartupType");