diff --git a/libpldmresponder/fru.cpp b/libpldmresponder/fru.cpp
index f8cb6d8..8a04199 100644
--- a/libpldmresponder/fru.cpp
+++ b/libpldmresponder/fru.cpp
@@ -171,17 +171,16 @@
     for (const auto& object : objects)
     {
         const auto& interfaces = object.second;
-        bool isPresent = pldm::utils::checkForFruPresence(object.first.str);
-        // Do not create fru record if fru is not present.
-        // Pick up the next available fru.
-        if (!isPresent)
-        {
-            continue;
-        }
         for (const auto& interface : interfaces)
         {
             if (itemIntfsLookup.find(interface.first) != itemIntfsLookup.end())
             {
+                // checking fru present property is available or not.
+                if (!pldm::utils::checkForFruPresence(object.first.str))
+                {
+                    continue;
+                }
+
                 // An exception will be thrown by getRecordInfo, if the item
                 // D-Bus interface name specified in FRU_Master.json does
                 // not have corresponding config jsons
