diff --git a/fault-monitor/fru-fault-monitor.cpp b/fault-monitor/fru-fault-monitor.cpp
index ca31702..b71cbcc 100644
--- a/fault-monitor/fru-fault-monitor.cpp
+++ b/fault-monitor/fru-fault-monitor.cpp
@@ -166,7 +166,7 @@
         // Not a new error entry skip
         return;
     }
-    auto iter = interfaces.find("org.openbmc.Associations");
+    auto iter = interfaces.find("xyz.openbmc_project.Association.Definitions");
     if (iter == interfaces.end())
     {
         return;
@@ -177,7 +177,7 @@
     std::string message{objectPath.str + " created"};
     log<level::INFO>(message.c_str());
 
-    auto attr = iter->second.find("associations");
+    auto attr = iter->second.find("Associations");
     if (attr == iter->second.end())
     {
         return;
@@ -259,8 +259,8 @@
         auto method = bus.new_method_call(
             elem.second.begin()->first.c_str(), elem.first.c_str(),
             "org.freedesktop.DBus.Properties", "Get");
-        method.append("org.openbmc.Associations");
-        method.append("associations");
+        method.append("xyz.openbmc_project.Association.Definitions");
+        method.append("Associations");
         auto reply = bus.call(method);
         if (reply.is_method_error())
         {
