diff --git a/dump_manager.cpp b/dump_manager.cpp
index 7e753c0..3775842 100644
--- a/dump_manager.cpp
+++ b/dump_manager.cpp
@@ -16,7 +16,6 @@
 
 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
 using namespace phosphor::logging;
-using namespace std;
 
 namespace internal
 {
@@ -170,5 +169,35 @@
     childWatchMap.erase(path);
 }
 
+void Manager::restore()
+{
+    fs::path dir(BMC_DUMP_PATH);
+    if (!fs::exists(dir) || fs::is_empty(dir))
+    {
+        return;
+    }
+
+    //Dump file path: <BMC_DUMP_PATH>/<id>/<filename>
+    for (const auto& p : fs::directory_iterator(dir))
+    {
+        auto idStr = p.path().filename().string();
+
+        //Consider only directory's with dump id as name.
+        //Note: As per design one file per directory.
+        if ((fs::is_directory(p.path())) &&
+            std::all_of(idStr.begin(), idStr.end(), ::isdigit))
+        {
+            lastEntryId = std::max(lastEntryId,
+                                   static_cast<uint32_t>(std::stoul(idStr)));
+            auto fileIt = fs::directory_iterator(p.path());
+            //Create dump entry d-bus object.
+            if (fileIt != fs::end(fileIt))
+            {
+                createEntry(fileIt->path());
+            }
+        }
+    }
+}
+
 } //namespace dump
 } //namespace phosphor
diff --git a/dump_manager.hpp b/dump_manager.hpp
index 003d9e4..ea1a5ba 100644
--- a/dump_manager.hpp
+++ b/dump_manager.hpp
@@ -87,6 +87,11 @@
          */
         void watchCallback(const UserMap& fileInfo);
 
+        /** @brief Construct dump d-bus objects from their persisted
+          *        representations.
+          */
+        void restore();
+
     private:
         /** @brief Create Dump entry d-bus object
          *  @param[in] fullPath - Full path of the Dump file name
diff --git a/dump_manager_main.cpp b/dump_manager_main.cpp
index 89aa6d4..ade1073 100644
--- a/dump_manager_main.cpp
+++ b/dump_manager_main.cpp
@@ -33,6 +33,8 @@
     try
     {
         phosphor::dump::Manager manager(bus, eventP, DUMP_OBJPATH);
+        //Restore dump d-bus objects.
+        manager.restore();
         phosphor::dump::internal::Manager mgr(bus, manager, OBJ_INTERNAL);
         bus.attach_event(eventP.get(), SD_EVENT_PRIORITY_NORMAL);
 
