diff --git a/libpldmresponder/bios_config.hpp b/libpldmresponder/bios_config.hpp
index 57fcdf4..cda47f3 100644
--- a/libpldmresponder/bios_config.hpp
+++ b/libpldmresponder/bios_config.hpp
@@ -158,6 +158,9 @@
     using propName = std::string;
     using DbusChObjProperties = std::map<propName, pldm::utils::PropertyValue>;
 
+    using ifaceName = std::string;
+    using DbusIfacesAdded = std::map<ifaceName, DbusChObjProperties>;
+
     // vector to catch the D-Bus property change signals for BIOS attributes
     std::vector<std::unique_ptr<sdbusplus::bus::match_t>> biosAttrMatch;
 
@@ -199,6 +202,24 @@
                             processBiosAttrChangeNotification(props,
                                                               biosAttrIndex);
                         }));
+
+                biosAttrMatch.push_back(
+                    std::make_unique<sdbusplus::bus::match::match>(
+                        pldm::utils::DBusHandler::getBus(),
+                        interfacesAdded() + argNpath(0, dBusMap->objectPath),
+                        [this, biosAttrIndex, interface = dBusMap->interface](
+                            sdbusplus::message::message& msg) {
+                            sdbusplus::message::object_path path;
+                            DbusIfacesAdded interfaces;
+
+                            msg.read(path, interfaces);
+                            auto ifaceIt = interfaces.find(interface);
+                            if (ifaceIt != interfaces.end())
+                            {
+                                processBiosAttrChangeNotification(
+                                    ifaceIt->second, biosAttrIndex);
+                            }
+                        }));
             }
         }
         catch (const std::exception& e)
