diff --git a/src/activation.cpp b/src/activation.cpp
index 37610c0..13b42cc 100644
--- a/src/activation.cpp
+++ b/src/activation.cpp
@@ -225,6 +225,7 @@
 
     associationInterface->createActiveAssociation(objPath);
     associationInterface->addFunctionalAssociation(objPath);
+    associationInterface->addUpdateableAssociation(objPath);
 
     // Reset RequestedActivations to none so that it could be activated in
     // future
diff --git a/src/association_interface.hpp b/src/association_interface.hpp
index e3d653c..2969719 100644
--- a/src/association_interface.hpp
+++ b/src/association_interface.hpp
@@ -21,6 +21,13 @@
      */
     virtual void addFunctionalAssociation(const std::string& path) = 0;
 
+    /** @brief Add the updateable association to the
+     *  "running" PSU software image
+     *
+     * @param[in]  path - The path to create the association.
+     */
+    virtual void addUpdateableAssociation(const std::string& path) = 0;
+
     /** @brief Remove the associations from the provided software image path
      *
      * @param[in]  path - The path to remove the association from.
diff --git a/src/item_updater.cpp b/src/item_updater.cpp
index 90ff62d..a5b5afb 100644
--- a/src/item_updater.cpp
+++ b/src/item_updater.cpp
@@ -163,6 +163,13 @@
     associations(assocs);
 }
 
+void ItemUpdater::addUpdateableAssociation(const std::string& path)
+{
+    assocs.emplace_back(std::make_tuple(UPDATEABLE_FWD_ASSOCIATION,
+                                        UPDATEABLE_REV_ASSOCIATION, path));
+    associations(assocs);
+}
+
 void ItemUpdater::removeAssociation(const std::string& path)
 {
     for (auto iter = assocs.begin(); iter != assocs.end();)
@@ -246,6 +253,7 @@
 
         createActiveAssociation(path);
         addFunctionalAssociation(path);
+        addUpdateableAssociation(path);
     }
 }
 
diff --git a/src/item_updater.hpp b/src/item_updater.hpp
index 0477e60..94d97f5 100644
--- a/src/item_updater.hpp
+++ b/src/item_updater.hpp
@@ -80,6 +80,13 @@
      */
     void addFunctionalAssociation(const std::string& path) override;
 
+    /** @brief Add the updateable association to the
+     *  "running" PSU software image
+     *
+     * @param[in]  path - The path to create the association.
+     */
+    void addUpdateableAssociation(const std::string& path) override;
+
     /** @brief Removes the associations from the provided software image path
      *
      * @param[in]  path - The path to remove the association from.
