diff --git a/item_updater.hpp b/item_updater.hpp
index 3260003..01466bb 100644
--- a/item_updater.hpp
+++ b/item_updater.hpp
@@ -94,7 +94,9 @@
     virtual ~ItemUpdater() = default;
 
     /** @brief Sets the given priority free by incrementing
-     *  any existing priority with the same value by 1
+     *  any existing priority with the same value by 1. It will then continue
+     *  to resolve duplicate priorities caused by this increase, by increasing
+     *  the priority by 1 until there are no more duplicate values.
      *
      *  @param[in] value - The priority that needs to be set free.
      *  @param[in] versionId - The Id of the version for which we
diff --git a/ubi/item_updater_ubi.cpp b/ubi/item_updater_ubi.cpp
index 227bc1a..ccc540a 100644
--- a/ubi/item_updater_ubi.cpp
+++ b/ubi/item_updater_ubi.cpp
@@ -269,18 +269,37 @@
 
 void ItemUpdaterUbi::freePriority(uint8_t value, const std::string& versionId)
 {
-    // TODO openbmc/openbmc#1896 Improve the performance of this function
+    //  Versions with the lowest priority in front
+    std::priority_queue<std::pair<int, std::string>,
+                        std::vector<std::pair<int, std::string>>,
+                        std::greater<std::pair<int, std::string>>>
+        versionsPQ;
+
     for (const auto& intf : activations)
     {
         if (intf.second->redundancyPriority)
         {
-            if (intf.second->redundancyPriority.get()->priority() == value &&
-                intf.second->versionId != versionId)
-            {
-                intf.second->redundancyPriority.get()->priority(value + 1);
-            }
+            versionsPQ.push(std::make_pair(
+                intf.second->redundancyPriority.get()->priority(),
+                intf.second->versionId));
         }
     }
+
+    while (!versionsPQ.empty())
+    {
+        if (versionsPQ.top().first == value &&
+            versionsPQ.top().second != versionId)
+        {
+            // Increase priority by 1 and update its value
+            ++value;
+            storeToFile(versionsPQ.top().second, value);
+            auto it = activations.find(versionsPQ.top().second);
+            it->second->redundancyPriority.get()->sdbusplus::xyz::
+                openbmc_project::Software::server::RedundancyPriority::priority(
+                    value);
+        }
+        versionsPQ.pop();
+    }
 }
 
 bool ItemUpdaterUbi::erase(std::string entryId)
