diff --git a/item_updater.cpp b/item_updater.cpp
index 356a2ac..351fc4c 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -376,10 +376,6 @@
                 createActiveAssociation(path);
             }
 
-            // All updateable firmware components must expose the updateable
-            // association.
-            createUpdateableAssociation(path);
-
             // Create Version instance for this version.
             auto versionPtr = std::make_unique<VersionClass>(
                 bus, path, version, purpose, extendedVersion, flashId,
@@ -403,12 +399,6 @@
                 id, std::make_unique<Activation>(
                         bus, path, *this, id, activationState, associations)));
 
-            // Create Update object for this version.
-            if (useUpdateDBusInterface)
-            {
-                createUpdateObject(id, path);
-            }
-
 #ifdef BMC_STATIC_DUAL_IMAGE
             uint8_t priority;
             if ((functional && (runningImageSlot == 0)) ||
@@ -452,6 +442,21 @@
         }
     }
 
+    for (const auto& version : versions)
+    {
+        if ((versions.size() == 1) || (!version.second->isFunctional()))
+        {
+            // This is the only BMC version or the non-functional BMC version
+            // (in a system with more than one flash), hence create Update
+            // object and Updateable association for this version
+            if (useUpdateDBusInterface)
+            {
+                createUpdateObject(version.first, version.second->objPath);
+            }
+            createUpdateableAssociation(version.second->objPath);
+        }
+    }
+
     if (!functionalFound)
     {
         // If there is no functional version found, read the /etc/os-release and
