diff --git a/occ_finder.cpp b/occ_finder.cpp
index a9f98d6..c6926fd 100644
--- a/occ_finder.cpp
+++ b/occ_finder.cpp
@@ -50,7 +50,7 @@
     sdbusplus::message::variant<T> value;
     reply.read(value);
 
-    return sdbusplus::message::variant_ns::get<T>(value);
+    return std::get<T>(value);
 }
 
 std::vector<std::string> get(sdbusplus::bus::bus& bus)
diff --git a/occ_pass_through.cpp b/occ_pass_through.cpp
index a92d824..9c585d0 100644
--- a/occ_pass_through.cpp
+++ b/occ_pass_through.cpp
@@ -146,7 +146,7 @@
     if (propertyMap != msgData.end())
     {
         // Extract the OccActive property
-        if (sdbusplus::message::variant_ns::get<bool>(propertyMap->second))
+        if (std::get<bool>(propertyMap->second))
         {
             occActive = true;
         }
diff --git a/powercap.cpp b/powercap.cpp
index a04584f..6f46d34 100644
--- a/powercap.cpp
+++ b/powercap.cpp
@@ -85,7 +85,7 @@
     sdbusplus::message::variant<uint32_t> pcap;
     reply.read(pcap);
 
-    return sdbusplus::message::variant_ns::get<uint32_t>(pcap);
+    return std::get<uint32_t>(pcap);
 }
 
 bool PowerCap::getPcapEnabled()
@@ -107,7 +107,7 @@
     sdbusplus::message::variant<bool> pcapEnabled;
     reply.read(pcapEnabled);
 
-    return sdbusplus::message::variant_ns::get<bool>(pcapEnabled);
+    return std::get<bool>(pcapEnabled);
 }
 
 std::string PowerCap::getPcapFilename(const fs::path& path)
@@ -180,8 +180,7 @@
     auto valPropMap = msgData.find(POWER_CAP_PROP);
     if (valPropMap != msgData.end())
     {
-        pcap =
-            sdbusplus::message::variant_ns::get<uint32_t>(valPropMap->second);
+        pcap = std::get<uint32_t>(valPropMap->second);
         pcapEnabled = getPcapEnabled();
     }
     else
@@ -189,8 +188,7 @@
         valPropMap = msgData.find(POWER_CAP_ENABLE_PROP);
         if (valPropMap != msgData.end())
         {
-            pcapEnabled =
-                sdbusplus::message::variant_ns::get<bool>(valPropMap->second);
+            pcapEnabled = std::get<bool>(valPropMap->second);
             pcap = getPcap();
         }
         else
