diff --git a/bmc_state_manager.cpp b/bmc_state_manager.cpp
index 1b7d311..bf10c22 100644
--- a/bmc_state_manager.cpp
+++ b/bmc_state_manager.cpp
@@ -35,7 +35,7 @@
 
 void BMC::discoverInitialState()
 {
-    sdbusplus::message::variant<std::string> currentState;
+    std::variant<std::string> currentState;
     sdbusplus::message::object_path unitTargetPath;
 
     auto method = this->bus.new_method_call(SYSTEMD_SERVICE, SYSTEMD_OBJ_PATH,
diff --git a/chassis_state_manager.cpp b/chassis_state_manager.cpp
index c8a0665..17db4df 100644
--- a/chassis_state_manager.cpp
+++ b/chassis_state_manager.cpp
@@ -71,7 +71,7 @@
 //        has read property function
 void Chassis::determineInitialState()
 {
-    sdbusplus::message::variant<int> pgood = -1;
+    std::variant<int> pgood = -1;
     auto method = this->bus.new_method_call(
         "org.openbmc.control.Power", "/org/openbmc/control/power0",
         "org.freedesktop.DBus.Properties", "Get");
@@ -152,7 +152,7 @@
 
 bool Chassis::stateActive(const std::string& target)
 {
-    sdbusplus::message::variant<std::string> currentState;
+    std::variant<std::string> currentState;
     sdbusplus::message::object_path unitTargetPath;
 
     auto method = this->bus.new_method_call(SYSTEMD_SERVICE, SYSTEMD_OBJ_PATH,
diff --git a/discover_system_state.cpp b/discover_system_state.cpp
index 8038dd7..14b6117 100644
--- a/discover_system_state.cpp
+++ b/discover_system_state.cpp
@@ -67,7 +67,7 @@
 std::string getProperty(sdbusplus::bus::bus& bus, std::string path,
                         std::string interface, std::string propertyName)
 {
-    sdbusplus::message::variant<std::string> property;
+    std::variant<std::string> property;
     std::string service = getService(bus, path, interface);
 
     auto method = bus.new_method_call(service.c_str(), path.c_str(),
@@ -101,7 +101,7 @@
                  const std::string& interface, const std::string& property,
                  const std::string& value)
 {
-    sdbusplus::message::variant<std::string> variantValue = value;
+    std::variant<std::string> variantValue = value;
     std::string service = getService(bus, path, interface);
 
     auto method = bus.new_method_call(service.c_str(), path.c_str(),
@@ -157,7 +157,7 @@
         "Get");
     method.append(powerRestoreIntf, "PowerRestorePolicy");
 
-    sdbusplus::message::variant<std::string> result;
+    std::variant<std::string> result;
     try
     {
         auto reply = bus.call(method);
diff --git a/host_state_manager.cpp b/host_state_manager.cpp
index c333032..e2d8010 100644
--- a/host_state_manager.cpp
+++ b/host_state_manager.cpp
@@ -135,7 +135,7 @@
 
 bool Host::stateActive(const std::string& target)
 {
-    sdbusplus::message::variant<std::string> currentState;
+    std::variant<std::string> currentState;
     sdbusplus::message::object_path unitTargetPath;
 
     auto method = this->bus.new_method_call(SYSTEMD_SERVICE, SYSTEMD_OBJ_PATH,
@@ -191,7 +191,7 @@
     {
         auto reply = bus.call(method);
 
-        sdbusplus::message::variant<bool> result;
+        std::variant<bool> result;
         reply.read(result);
         auto autoReboot = std::get<bool>(result);
         auto rebootCounterParam = reboot::RebootAttempts::attemptsLeft();
diff --git a/utils.cpp b/utils.cpp
index a7a7384..8961fe9 100644
--- a/utils.cpp
+++ b/utils.cpp
@@ -58,7 +58,7 @@
                  const std::string& interface, const std::string& property,
                  const std::string& value)
 {
-    sdbusplus::message::variant<std::string> variantValue = value;
+    std::variant<std::string> variantValue = value;
     std::string service = getService(bus, path, interface);
 
     auto method = bus.new_method_call(service.c_str(), path.c_str(),
