diff --git a/ipmid.cpp b/ipmid.cpp
index 7848afe..31608e9 100644
--- a/ipmid.cpp
+++ b/ipmid.cpp
@@ -35,7 +35,6 @@
 }
 
 // Host settings in DBUS
-constexpr char settings_host_bus[] = "org.openbmc.settings.Host";
 constexpr char settings_host_object[] = "/org/openbmc/settings/host0";
 constexpr char settings_host_intf[] = "org.freedesktop.DBus.Properties";
 
@@ -271,16 +270,22 @@
     sd_bus_message *reply = NULL;
     sd_bus_error error = SD_BUS_ERROR_NULL;
     int rc = 0;
+    char  *busname = NULL;
 
+    rc = mapper_get_service(bus, settings_host_object, &busname);
+    if (rc < 0) {
+        fprintf(stderr, "Failed to get HOST busname: %s\n", strerror(-rc));
+        goto cleanup;
+    }
     rc = sd_bus_call_method(bus,
-                            settings_host_bus,
+                            busname,
                             settings_host_object,
                             settings_host_intf,
                             "Get",
                             &error,
                             &reply,
                             "ss",
-                            settings_host_bus,
+                            "org.openbmc.settings.Host",
                             "restricted_mode");
     if(rc < 0)
     {
@@ -303,6 +308,7 @@
 cleanup:
     sd_bus_error_free(&error);
     reply = sd_bus_message_unref(reply);
+    free(busname);
 }
 
 static int handle_restricted_mode_change(sd_bus_message *m, void *user_data,
