diff --git a/src/kdeinitinterface.cpp b/src/kdeinitinterface.cpp --- a/src/kdeinitinterface.cpp +++ b/src/kdeinitinterface.cpp @@ -41,11 +41,11 @@ qCDebug(KDBUSADDONS_LOG) << "klauncher not running... launching kdeinit"; QLockFile lock(QDir::tempPath() + QLatin1Char('/') + QLatin1String("startkdeinitlock")); - if (!lock.tryLock()) { - lock.lock(); + if (lock.tryLock()) { if (dbusDaemon->isServiceRegistered(QStringLiteral("org.kde.klauncher5"))) { return; // whoever held the lock has already started it } + lock.unlock(); } // Try to launch kdeinit. QString srv = QStandardPaths::findExecutable(QStringLiteral("kdeinit5"));