diff --git a/host-bmc/host_pdr_handler.cpp b/host-bmc/host_pdr_handler.cpp
index 3c8d54e..f8594d6 100644
--- a/host-bmc/host_pdr_handler.cpp
+++ b/host-bmc/host_pdr_handler.cpp
@@ -85,7 +85,7 @@
         });
 }
 
-void HostPDRHandler::fetchPDR(std::vector<uint32_t>&& recordHandles)
+void HostPDRHandler::fetchPDR(PDRRecordHandles&& recordHandles)
 {
     pdrRecordHandles.clear();
     pdrRecordHandles = std::move(recordHandles);
@@ -107,7 +107,17 @@
     auto request = reinterpret_cast<pldm_msg*>(requestMsg.data());
     bool merged = false;
 
-    for (auto recordHandle : pdrRecordHandles)
+    uint32_t nextRecordHandle{};
+    uint32_t recordHandle{};
+    bool isFormatRecHandles = false;
+    if (!pdrRecordHandles.empty())
+    {
+        recordHandle = pdrRecordHandles.front();
+        pdrRecordHandles.pop_front();
+        isFormatRecHandles = true;
+    }
+
+    do
     {
         auto instanceId = requester.getInstanceId(mctp_eid);
 
@@ -138,7 +148,6 @@
         }
 
         uint8_t completionCode{};
-        uint32_t nextRecordHandle{};
         uint32_t nextDataTransferHandle{};
         uint8_t transferFlag{};
         uint16_t respCount{};
@@ -194,8 +203,19 @@
                     pldm_pdr_add(repo, pdr.data(), respCount, 0, true);
                 }
             }
+
+            recordHandle = nextRecordHandle;
+            if (!pdrRecordHandles.empty())
+            {
+                recordHandle = pdrRecordHandles.front();
+                pdrRecordHandles.pop_front();
+            }
+            else if (isFormatRecHandles)
+            {
+                break;
+            }
         }
-    }
+    } while (recordHandle);
 
     if (merged)
     {
diff --git a/host-bmc/host_pdr_handler.hpp b/host-bmc/host_pdr_handler.hpp
index a54c008..fbb206c 100644
--- a/host-bmc/host_pdr_handler.hpp
+++ b/host-bmc/host_pdr_handler.hpp
@@ -11,6 +11,7 @@
 #include <sdeventplus/event.hpp>
 #include <sdeventplus/source/event.hpp>
 
+#include <deque>
 #include <map>
 #include <memory>
 #include <vector>
@@ -24,7 +25,7 @@
 // vector which would hold the PDR record handle data returned by
 // pldmPDRRepositoryChgEvent event data
 using ChangeEntry = uint32_t;
-using PDRRecordHandles = std::vector<ChangeEntry>;
+using PDRRecordHandles = std::deque<ChangeEntry>;
 
 /** @struct SensorEntry
  *
@@ -88,7 +89,7 @@
      *             PDRs that need to be fetched.
      */
 
-    void fetchPDR(std::vector<uint32_t>&& recordHandles);
+    void fetchPDR(PDRRecordHandles&& recordHandles);
 
     /** @brief Send a PLDM event to host firmware containing a list of record
      *  handles of PDRs that the host firmware has to fetch.
