diff --git a/src/lib/eldbus/eldbus_core.c b/src/lib/eldbus/eldbus_core.c index a7af40fc9e..f47d440e42 100644 --- a/src/lib/eldbus/eldbus_core.c +++ b/src/lib/eldbus/eldbus_core.c @@ -989,13 +989,22 @@ _connection_get(Eldbus_Connection_Type type, const char *address) else conn->dbus_conn = dbus_bus_get_private(type - 1, &err); - if (dbus_error_is_set(&err)) + if (!conn->dbus_conn || dbus_error_is_set(&err)) { free(conn); ERR("Error connecting to bus: %s", err.message); return NULL; } + if (type == ELDBUS_CONNECTION_TYPE_ADDRESS && + !dbus_bus_register(conn->dbus_conn, &err)) + { + dbus_connection_close(conn->dbus_conn); + free(conn); + ERR("Error registering with bus: %s", err.message); + return NULL; + } + eldbus_connection_setup(conn); conn->type = type; conn->refcount = 1;