diff --git a/include/dbus_monitor.hpp b/include/dbus_monitor.hpp
index 5dcd5ca..44a7a94 100644
--- a/include/dbus_monitor.hpp
+++ b/include/dbus_monitor.hpp
@@ -6,6 +6,7 @@
 #include <boost/container/flat_set.hpp>
 #include <dbus_singleton.hpp>
 #include <sdbusplus/bus/match.hpp>
+#include <sdbusplus/message/types.hpp>
 
 namespace nlohmann
 {
@@ -14,7 +15,7 @@
 {
     static void to_json(json& j, const sdbusplus::message::variant<Args...>& v)
     {
-        mapbox::util::apply_visitor([&](auto&& val) { j = val; }, v);
+        sdbusplus::message::variant_ns::visit([&](auto&& val) { j = val; }, v);
     }
 };
 } // namespace nlohmann
diff --git a/include/dbus_singleton.hpp b/include/dbus_singleton.hpp
index 2438152..9fe966f 100644
--- a/include/dbus_singleton.hpp
+++ b/include/dbus_singleton.hpp
@@ -1,20 +1,16 @@
 #pragma once
 #include <iostream>
 #include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/message/types.hpp>
+#include <type_traits>
 
 namespace mapbox
 {
 template <typename T, typename... Types>
-const T* getPtr(const mapbox::util::variant<Types...>& v)
+const T* getPtr(const sdbusplus::message::variant<Types...>& v)
 {
-    if (v.template is<std::remove_const_t<T>>())
-    {
-        return &v.template get_unchecked<std::remove_const_t<T>>();
-    }
-    else
-    {
-        return nullptr;
-    }
+    namespace variant_ns = sdbusplus::message::variant_ns;
+    return variant_ns::get_if<std::remove_const_t<T>, Types...>(&v);
 }
 } // namespace mapbox
 
diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index aa6c95f..1fefa40 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -23,6 +23,7 @@
 #include <dbus_utility.hpp>
 #include <experimental/filesystem>
 #include <fstream>
+#include <sdbusplus/message/types.hpp>
 
 namespace crow
 {
@@ -126,7 +127,7 @@
                         {
                             nlohmann::json &propertyJson =
                                 objectJson[property.first];
-                            mapbox::util::apply_visitor(
+                            sdbusplus::message::variant_ns::visit(
                                 [&propertyJson](auto &&val) {
                                     propertyJson = val;
                                 },
@@ -860,7 +861,7 @@
 
                                     if (propertyName->empty())
                                     {
-                                        mapbox::util::apply_visitor(
+                                        sdbusplus::message::variant_ns::visit(
                                             [&response, &property](auto &&val) {
                                                 (*response)[property.first] =
                                                     val;
@@ -869,7 +870,7 @@
                                     }
                                     else if (property.first == *propertyName)
                                     {
-                                        mapbox::util::apply_visitor(
+                                        sdbusplus::message::variant_ns::visit(
                                             [&response](auto &&val) {
                                                 (*response) = val;
                                             },
