diff --git a/extended/code_update/code_update.py b/extended/code_update/code_update.py
index 5f29936..d4f838a 100644
--- a/extended/code_update/code_update.py
+++ b/extended/code_update/code_update.py
@@ -40,7 +40,7 @@
     retry = 0
     while (retry < 20):
         status, software_state = keyword.run_key("Read Properties  " +
-                                        var.SOFTWARE_VERSION + str(version_id))
+                                    var.SOFTWARE_VERSION_URI + str(version_id))
         current_state = (software_state)["Activation"]
         if (initial_state == current_state):
             time.sleep(60)
diff --git a/extended/code_update/code_update.robot b/extended/code_update/code_update.robot
index 1c9e4f4..741c16b 100644
--- a/extended/code_update/code_update.robot
+++ b/extended/code_update/code_update.robot
@@ -50,20 +50,20 @@
     Should Be True  ${ret}
 
     # Verify the image is 'READY' to be activated.
-    ${software_state}=  Read Properties  ${SOFTWARE_VERSION}${version_id}
+    ${software_state}=  Read Properties  ${SOFTWARE_VERSION_URI}${version_id}
     Should Be Equal As Strings  &{software_state}[Activation]  ${READY}
 
     # Request the image to be activated.
     ${args}=  Create Dictionary  data=${REQUESTED_ACTIVE}
-    Write Attribute  ${SOFTWARE_VERSION}${version_id}
+    Write Attribute  ${SOFTWARE_VERSION_URI}${version_id}
     ...  RequestedActivation  data=${args}
-    ${software_state}=  Read Properties  ${SOFTWARE_VERSION}${version_id}
+    ${software_state}=  Read Properties  ${SOFTWARE_VERSION_URI}${version_id}
     Should Be Equal As Strings  &{software_state}[RequestedActivation]
     ...  ${REQUESTED_ACTIVE}
 
     # Verify code update was successful and Activation state is Active.
     Wait For Activation State Change  ${version_id}  ${ACTIVATING}
-    ${software_state}=  Read Properties  ${SOFTWARE_VERSION}${version_id}
+    ${software_state}=  Read Properties  ${SOFTWARE_VERSION_URI}${version_id}
     Should Be Equal As Strings  &{software_state}[Activation]  ${ACTIVE}
 
 *** Keywords ***
diff --git a/extended/test_uploadimage.py b/extended/test_uploadimage.py
index 024c4f0..c9aa338 100644
--- a/extended/test_uploadimage.py
+++ b/extended/test_uploadimage.py
@@ -158,7 +158,7 @@
     image_purpose = get_image_purpose(image_path + "MANIFEST")
     if (image_purpose == var.VERSION_PURPOSE_BMC or
         image_purpose == var.VERSION_PURPOSE_HOST):
-        uri = var.SOFTWARE_VERSION + image_version_id
+        uri = var.SOFTWARE_VERSION_URI + image_version_id
         status, ret_values =\
         grk.run_key("Read Attribute  " + uri + "  Activation")
 
diff --git a/extended/test_uploadimage.robot b/extended/test_uploadimage.robot
index 3b50c46..b0eeb00 100644
--- a/extended/test_uploadimage.robot
+++ b/extended/test_uploadimage.robot
@@ -48,7 +48,7 @@
     @{image}=  Create List  ${TFTP_FILE_NAME}  ${TFTP_SERVER}
     ${data}=  Create Dictionary  data=@{image}
     ${resp}=  OpenBMC Post Request
-    ...  ${SOFTWARE_VERSION}/action/DownloadViaTFTP  data=${data}
+    ...  ${SOFTWARE_VERSION_URI}/action/DownloadViaTFTP  data=${data}
     Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
     Sleep  1 minute
     ${upload_file}=  Get Latest File  ${upload_dir_path}
