diff --git a/item_updater.cpp b/item_updater.cpp
index 5ef6bd0..9e558ce 100644
--- a/item_updater.cpp
+++ b/item_updater.cpp
@@ -138,8 +138,7 @@
                                 path,
                                 version,
                                 purpose,
-                                filePath,
-                                *this)));
+                                filePath)));
     }
     else
     {
@@ -248,8 +247,7 @@
                                      path,
                                      version,
                                      purpose,
-                                     "",
-                                     *this)));
+                                     "")));
         }
         else if (0 == iter.path().native().compare(0, PNOR_RW_PREFIX_LEN,
                                                       PNOR_RW_PREFIX))
diff --git a/version.cpp b/version.cpp
index 8e36071..5dbab35 100644
--- a/version.cpp
+++ b/version.cpp
@@ -93,11 +93,6 @@
     return keys;
 }
 
-void Version::delete_()
-{
-    parent.erase(getId(version()));
-}
-
 } // namespace updater
 } // namespace software
 } // namespace openpower
diff --git a/version.hpp b/version.hpp
index d2c0624..8cb7e37 100644
--- a/version.hpp
+++ b/version.hpp
@@ -2,7 +2,6 @@
 
 #include <sdbusplus/bus.hpp>
 #include "xyz/openbmc_project/Software/Version/server.hpp"
-#include "xyz/openbmc_project/Object/Delete/server.hpp"
 #include "xyz/openbmc_project/Common/FilePath/server.hpp"
 
 namespace openpower
@@ -16,7 +15,6 @@
 
 using VersionInherit = sdbusplus::server::object::object<
         sdbusplus::xyz::openbmc_project::Software::server::Version,
-        sdbusplus::xyz::openbmc_project::Object::server::Delete,
         sdbusplus::xyz::openbmc_project::Common::server::FilePath>;
 
 /** @class Version
@@ -34,16 +32,13 @@
          * @param[in] versionString  - The version string
          * @param[in] versionPurpose - The version purpose
          * @param[in] filePath       - The image filesystem path
-         * @param[in] parent         - The version's parent
          */
         Version(sdbusplus::bus::bus& bus,
                 const std::string& objPath,
                 const std::string& versionString,
                 VersionPurpose versionPurpose,
-                const std::string& filePath,
-                ItemUpdater& parent) :
-                        VersionInherit(bus, (objPath).c_str(), true),
-                        parent(parent)
+                const std::string& filePath) :
+                        VersionInherit(bus, (objPath).c_str(), true)
         {
             // Set properties.
             purpose(versionPurpose);
@@ -78,15 +73,6 @@
          * @return The id.
          */
         static std::string getId(const std::string& version);
-
-        /** @brief Deletes the D-Bus object and removes image.
-         *
-         */
-        void delete_() override;
-
-    private:
-        ItemUpdater& parent;
-
 };
 
 } // namespace updater
