diff --git a/sensordatahandler.hpp b/sensordatahandler.hpp
index bcb55ff..d56aea8 100644
--- a/sensordatahandler.hpp
+++ b/sensordatahandler.hpp
@@ -7,12 +7,15 @@
 #include <host-ipmid/ipmid-api.h>
 
 #include <cmath>
+#include <sdbusplus/message/types.hpp>
 
 namespace ipmi
 {
 namespace sensor
 {
 
+namespace variant_ns = sdbusplus::message::variant_ns;
+
 using Assertion = uint16_t;
 using Deassertion = uint16_t;
 using AssertionSet = std::pair<Assertion, Deassertion>;
@@ -164,7 +167,8 @@
         sensorInfo.propertyInterfaces.begin()->first,
         sensorInfo.propertyInterfaces.begin()->second.begin()->first);
 
-    setAssertionBytes(static_cast<uint16_t>(propValue.get<T>()), responseData);
+    setAssertionBytes(static_cast<uint16_t>(variant_ns::get<T>(propValue)),
+                      responseData);
 
     return response;
 }
@@ -194,7 +198,7 @@
         sensorInfo.propertyInterfaces.begin()->first,
         sensorInfo.propertyInterfaces.begin()->second.begin()->first);
 
-    double value = propValue.get<T>() *
+    double value = variant_ns::get<T>(propValue) *
                    std::pow(10, sensorInfo.scale - sensorInfo.exponentR);
 
     auto rawData = static_cast<uint8_t>((value - sensorInfo.scaledOffset) /
