diff --git a/extensions/openpower-pels/manager.cpp b/extensions/openpower-pels/manager.cpp
index 3387970..db2e2d6 100644
--- a/extensions/openpower-pels/manager.cpp
+++ b/extensions/openpower-pels/manager.cpp
@@ -127,7 +127,6 @@
 
 void Manager::addPEL(std::vector<uint8_t>& pelData, uint32_t obmcLogID)
 {
-
     auto pel = std::make_unique<openpower::pels::PEL>(pelData, obmcLogID);
     if (pel->valid())
     {
@@ -137,6 +136,22 @@
         {
             pel->assignID();
         }
+        else
+        {
+            const Repository::LogID id{Repository::LogID::Pel(pel->id())};
+            auto result = _repo.hasPEL(id);
+            if (result)
+            {
+                log<level::WARNING>(
+                    fmt::format("Duplicate HostBoot PEL Id {:#X} found; "
+                                "moving it to archive folder",
+                                pel->id())
+                        .c_str());
+
+                _repo.archivePEL(*pel);
+                return;
+            }
+        }
 
         // PELs created by others still need this field set by us.
         pel->setCommitTime();
diff --git a/extensions/openpower-pels/repository.cpp b/extensions/openpower-pels/repository.cpp
index c49d92f..9b650ce 100644
--- a/extensions/openpower-pels/repository.cpp
+++ b/extensions/openpower-pels/repository.cpp
@@ -734,5 +734,17 @@
     }
 }
 
+void Repository::archivePEL(const PEL& pel)
+{
+    if (pel.valid())
+    {
+        auto path = _archivePath / getPELFilename(pel.id(), pel.commitTime());
+
+        write(pel, path);
+
+        _archiveSize += getFileDiskSize(path);
+    }
+}
+
 } // namespace pels
 } // namespace openpower
diff --git a/extensions/openpower-pels/repository.hpp b/extensions/openpower-pels/repository.hpp
index a57b901..b8ef126 100644
--- a/extensions/openpower-pels/repository.hpp
+++ b/extensions/openpower-pels/repository.hpp
@@ -445,6 +445,13 @@
         return std::nullopt;
     }
 
+    /**
+     * @brief Save the PEL to archive folder
+     *
+     * @param[in] pel - The PEL data
+     */
+    void archivePEL(const PEL& pel);
+
   private:
     using PELUpdateFunc = std::function<void(PEL&)>;
 
