diff --git a/ibm_vpd_app.cpp b/ibm_vpd_app.cpp
index c530c61..367f8d2 100644
--- a/ibm_vpd_app.cpp
+++ b/ibm_vpd_app.cpp
@@ -667,14 +667,22 @@
                 inventory::PropertyMap presProp;
 
                 // Do not populate Present property for frus whose
-                // synthesized=true. synthesized=true says the fru is owned by
-                // some other component and not by vpd.
+                // synthesized=true. synthesized=true says the fru VPD is
+                // synthesized and owned by a separate component.
+                // In some cases, the FRU has its own VPD, but still a separate
+                // application handles the FRU's presence. So VPD parser skips
+                // populating Present property by checking the JSON flag,
+                // "handlePresence".
                 if (!itemEEPROM.value("synthesized", false))
                 {
-                    presProp.emplace("Present", false);
-                    interfaces.emplace("xyz.openbmc_project.Inventory.Item",
-                                       presProp);
+                    if (itemEEPROM.value("handlePresence", true))
+                    {
+                        presProp.emplace("Present", false);
+                        interfaces.emplace("xyz.openbmc_project.Inventory.Item",
+                                           presProp);
+                    }
                 }
+
                 setOneTimeProperties(object, interfaces);
                 if (itemEEPROM.find("extraInterfaces") != itemEEPROM.end())
                 {
@@ -1286,9 +1294,13 @@
         if ((item.value("embedded", true)) &&
             (!item.value("synthesized", false)))
         {
-            inventory::PropertyMap presProp;
-            presProp.emplace("Present", true);
-            insertOrMerge(interfaces, invItemIntf, move(presProp));
+            // Check if its required to handle presence for this FRU.
+            if (item.value("handlePresence", true))
+            {
+                inventory::PropertyMap presProp;
+                presProp.emplace("Present", true);
+                insertOrMerge(interfaces, invItemIntf, move(presProp));
+            }
         }
 
         if constexpr (is_same<T, Parsed>::value)
