diff --git a/bin/dbus/dbusclient.cpp b/bin/dbus/dbusclient.cpp
index f2cc0182f97e703f13679b60ba39861f71b38d86..d8bc7935e8fedd820cf71f854426d23dad053b2c 100644
--- a/bin/dbus/dbusclient.cpp
+++ b/bin/dbus/dbusclient.cpp
@@ -50,6 +50,8 @@
 #include <cstdlib>
 #include <cstring>
 
+static constexpr const char* const JAMI_DBUS_NAME = "cx.ring.Ring";
+
 class EventCallback :
     public DBus::Callback_Base<void, DBus::DefaultTimeout&>
 {
@@ -74,7 +76,10 @@ DBusClient::DBusClient(int flags, bool persistent)
         DBus::default_dispatcher = dispatcher_.get();
 
         DBus::Connection sessionConnection {DBus::Connection::SessionBus()};
-        sessionConnection.request_name("cx.ring.Ring");
+        if (sessionConnection.has_name(JAMI_DBUS_NAME)) {
+            throw std::runtime_error {"Another daemon is detected"};
+        }
+        sessionConnection.request_name(JAMI_DBUS_NAME);
 
         callManager_.reset(new DBusCallManager {sessionConnection});
         configurationManager_.reset(new DBusConfigurationManager {sessionConnection});