diff --git a/mslverify/util.hpp b/mslverify/util.hpp
index eefc1cd..7e6e138 100644
--- a/mslverify/util.hpp
+++ b/mslverify/util.hpp
@@ -125,7 +125,7 @@
                    "Get"s, interface, property);
     ::sdbusplus::message::variant<Property> value;
     msg.read(value);
-    return ::sdbusplus::message::variant_ns::get<Property>(value);
+    return std::get<Property>(value);
 }
 
 /** @brief Get a property without mapper lookup. */
diff --git a/src/propertywatchimpl.hpp b/src/propertywatchimpl.hpp
index a1b8d68..048050e 100644
--- a/src/propertywatchimpl.hpp
+++ b/src/propertywatchimpl.hpp
@@ -157,7 +157,7 @@
         // Run property value thru filter operations
         auto isFiltered = false;
         const auto& storage = std::get<storageIndex>(item->second);
-        auto value = sdbusplus::message::variant_ns::get<T>(p.second);
+        auto value = std::get<T>(p.second);
         if (filterOps)
         {
             any_ns::any anyValue = value;
diff --git a/src/resolve_errors.cpp b/src/resolve_errors.cpp
index 3d38686..7273c14 100644
--- a/src/resolve_errors.cpp
+++ b/src/resolve_errors.cpp
@@ -60,8 +60,7 @@
             busName, path, PROPERTY_IFACE, "Get", ASSOCIATION_IFACE,
             ENDPOINTS_PROPERTY);
 
-        const auto& logEntries =
-            sdbusplus::message::variant_ns::get<EndpointList>(endpoints);
+        const auto& logEntries = std::get<EndpointList>(endpoints);
 
         // Resolve each log entry
         for (const auto& logEntry : logEntries)
diff --git a/src/snmp_trap.cpp b/src/snmp_trap.cpp
index eb2efd3..309b22e 100644
--- a/src/snmp_trap.cpp
+++ b/src/snmp_trap.cpp
@@ -33,15 +33,11 @@
         return;
     }
     auto& propMap = it->second;
-    auto errorID =
-        sdbusplus::message::variant_ns::get<uint32_t>(propMap.at("Id"));
-    auto timestamp =
-        sdbusplus::message::variant_ns::get<uint64_t>(propMap.at("Timestamp"));
-    auto sev = sdbusplus::message::variant_ns::get<std::string>(
-        propMap.at("Severity"));
+    auto errorID = std::get<uint32_t>(propMap.at("Id"));
+    auto timestamp = std::get<uint64_t>(propMap.at("Timestamp"));
+    auto sev = std::get<std::string>(propMap.at("Severity"));
     auto isev = static_cast<uint8_t>(Entry::convertLevelFromString(sev));
-    auto message =
-        sdbusplus::message::variant_ns::get<std::string>(propMap.at("Message"));
+    auto message = std::get<std::string>(propMap.at("Message"));
     try
     {
         sendTrap<OBMCErrorNotification>(errorID, timestamp, isev, message);
