diff --git a/redfish/account_service/test_ldap_configuration.robot b/redfish/account_service/test_ldap_configuration.robot
index 0338772..2a95bc2 100644
--- a/redfish/account_service/test_ldap_configuration.robot
+++ b/redfish/account_service/test_ldap_configuration.robot
@@ -632,7 +632,7 @@
 Restore AccountLockout Attributes
     [Documentation]  Restore AccountLockout Attributes.
 
-    Return From Keyword If  &{old_account_service} == &{EMPTY}
+    IF  &{old_account_service} == &{EMPTY}  RETURN
     Redfish.Patch  ${REDFISH_BASE_URI}AccountService
     ...  body=[('AccountLockoutDuration', ${old_account_service['AccountLockoutDuration']})]
     ...  valid_status_codes=[${HTTP_OK},${HTTP_NO_CONTENT}]
@@ -740,7 +740,7 @@
 
     ${ldap_config}=  Get LDAP Configuration  ${LDAP_TYPE}
     ${num_list_entries}=  Get Length  ${ldap_config["RemoteRoleMapping"]}
-    Return From Keyword If  ${num_list_entries} == ${0}  @{EMPTY}
+    IF  ${num_list_entries} == ${0}  @{EMPTY}  RETURN
 
     RETURN  ${ldap_config["RemoteRoleMapping"][0]["LocalRole"]}
 
@@ -749,7 +749,7 @@
     [Documentation]  Restore the LDAP privilege to its original value.
 
     Redfish.Login
-    Return From Keyword If  '${old_ldap_privilege}' == '${EMPTY}' or '${old_ldap_privilege}' == '[]'
+    IF  '${old_ldap_privilege}' == '${EMPTY}' or '${old_ldap_privilege}' == '[]'  RETURN
     # Log back in to restore the original privilege.
     Update LDAP Configuration with LDAP User Role And Group  ${LDAP_TYPE}
     ...  ${old_ldap_privilege}  ${GROUP_NAME}
@@ -764,7 +764,7 @@
     # expected_power_status  State of Host e.g. Off or On.
 
     ${power_status}=  Redfish.Get Attribute  /redfish/v1/Chassis/${CHASSIS_ID}  PowerState
-    Return From Keyword If  '${power_status}' == '${expected_power_status}'
+    IF  '${power_status}' == '${expected_power_status}'  RETURN
 
     IF  '${power_status}' == 'Off'
         Redfish Power On
@@ -794,7 +794,7 @@
     Redfish.Post  ${REDFISH_POWER_URI}
     ...  body={'ResetType': 'ForceOff'}   valid_status_codes=[${valid_status_code}]
 
-    Return From Keyword If  ${valid_status_code} == ${HTTP_FORBIDDEN}
+    IF  ${valid_status_code} == ${HTTP_FORBIDDEN}  RETURN
     Wait Until Keyword Succeeds  1 min  10 sec  Verify Host Power State  Off
 
 
@@ -820,7 +820,7 @@
     Redfish.Post  ${REDFISH_POWER_URI}
     ...  body={'ResetType': 'On'}   valid_status_codes=[${valid_status_code}]
 
-    Return From Keyword If  ${valid_status_code} == ${HTTP_FORBIDDEN}
+    IF  ${valid_status_code} == ${HTTP_FORBIDDEN}  RETURN
     Verify Host Is Up
 
 
diff --git a/redfish/dmtf_tools/test_redfishtool_certificate.robot b/redfish/dmtf_tools/test_redfishtool_certificate.robot
index 1febefa..e7d6e68 100644
--- a/redfish/dmtf_tools/test_redfishtool_certificate.robot
+++ b/redfish/dmtf_tools/test_redfishtool_certificate.robot
@@ -260,7 +260,9 @@
     ...  ELSE IF  '${cert_type}' == 'Client'
     ...  Redfishtool Delete Certificate Via BMC CLI  ${cert_type}  ${delete_cert}
 
-    Return From Keyword If  "${install_type}" != "install" and "${file_status}" != "Not Found"
+    IF  "${install_type}" != "install" and "${file_status}" != "Not Found"
+        RETURN
+    END
 
     ${cert_file_path}=  Generate Certificate File Via Openssl  ${cert_format}
     ${bytes}=  OperatingSystem.Get Binary File  ${cert_file_path}
@@ -302,7 +304,11 @@
     ...  "${uri_length}" == "0"  None
     Set Test Variable  ${cert_id}
     Set Test Variable  ${file_status}
-    Return From Keyword If  "${file_status}" != "Found" or "${delete_cert}" != "${True}"
+
+    IF  "${file_status}" != "Found" or "${delete_cert}" != "${True}"
+        RETURN
+    END
+
     FOR  ${cert}  IN  @{cert_list}
       Redfishtool Delete  ${cert["@odata.id"]}  ${root_cmd_args}
     END
@@ -327,7 +333,11 @@
     ...  [ -f ${certificate_file_path} ] && echo "Found" || echo "Not Found"
 
     Set Test Variable  ${file_status}
-    Return From Keyword If  "${file_status}" != "Found" or '${delete_cert}' != "${True}"
+
+    IF  "${file_status}" != "Found" or '${delete_cert}' != "${True}"
+        RETURN
+    END
+
     BMC Execute Command  rm ${certificate_file_path}
     BMC Execute Command  systemctl restart ${certificate_service}
     BMC Execute Command  systemctl daemon-reload
diff --git a/redfish/extended/redfish_bmc_code_update.robot b/redfish/extended/redfish_bmc_code_update.robot
index 3ac19d4..56c6985 100644
--- a/redfish/extended/redfish_bmc_code_update.robot
+++ b/redfish/extended/redfish_bmc_code_update.robot
@@ -71,9 +71,11 @@
     ${nonfunctional_sw_inv}=  Get Non Functional Firmware  ${sw_inv}  False
 
     # Redfish active software image API.
-    Run Keyword If  ${num_records} > 0
-    ...  Run Keyword If  '${nonfunctional_sw_inv['version']}' == '${image_version}'
-    ...  Set Backup Firmware To Functional  ${image_version}  ${state}
+    IF  ${num_records} > 0
+        IF  '${nonfunctional_sw_inv['version']}' == '${image_version}'
+            Set Backup Firmware To Functional  ${image_version}  ${state}
+        END
+    END
 
     Print Timen  Performing firmware update ${image_version}.
 
@@ -197,7 +199,7 @@
 
     # If no software inventory record was found, there is no existing
     # firmware for the given version and therefore no action to be taken.
-    Return From Keyword If  not ${num_keys}
+    IF  not ${num_keys}  RETURN
 
     # Check if the existing firmware is functional.
     Pass Execution If  ${software_inventory_record['functional']}
@@ -241,7 +243,8 @@
     ${cur_priority}=  Get Image Priority  ${image_version}
     Rprint Vars  least_priority  cur_priority
 
-    Return From Keyword If  '${least_priority}' == ${cur_priority}
+    IF  '${least_priority}' == ${cur_priority}  RETURN
+
     Set Host Software Property
     ...  ${SOFTWARE_VERSION_URI}${software_inventory['image_id']}
     ...  Priority  ${least_priority}
diff --git a/redfish/systems/LogServices/test_post_codes.robot b/redfish/systems/LogServices/test_post_codes.robot
index 2f4972a..0e0bcad 100644
--- a/redfish/systems/LogServices/test_post_codes.robot
+++ b/redfish/systems/LogServices/test_post_codes.robot
@@ -203,7 +203,7 @@
     ${last_id}=  Split String  ${last_id}  -
     ${boot_count}=  Set Variable  ${last_id[0][1]}
 
-    Return From Keyword  ${boot_count}
+    RETURN  ${boot_count}
 
 
 Populate PostCode Logs Incase No Prior Entries Available
diff --git a/redfish/systems/test_systems_inventory.robot b/redfish/systems/test_systems_inventory.robot
index c3e24e2..0c2224e 100755
--- a/redfish/systems/test_systems_inventory.robot
+++ b/redfish/systems/test_systems_inventory.robot
@@ -22,7 +22,6 @@
 
 *** Test Cases ***
 
-
 Verify CPU And Core Count
     [Documentation]  Get the total number of CPUs and cores in the system.
     ...              Verify counts are above minimums.
@@ -108,7 +107,7 @@
         ${state}=  Set Variable  ${power_supply['Status']['State']}
         ${good_state}=  Evaluate
         ...  any(x in '${state}' for x in ('Enabled', 'StandbyOffline'))
-        Run Keyword If  not ${good_state}  Continue For Loop
+        IF  not ${good_state}  CONTINUE
         ${total_num_supplies}=  Evaluate  $total_num_supplies + ${1}
     END
 
@@ -174,7 +173,7 @@
     #               "/redfish/v1/Systems/system/Processors/cpu0").
 
     ${total_cores}=  Redfish.Get Attribute  ${processor}  TotalCores
-    Return From Keyword If  ${total_cores} is ${NONE}  ${0}
+    IF  ${total_cores} is ${NONE}  RETURN  ${0}
     RETURN  ${total_cores}
 
 
@@ -191,8 +190,9 @@
         ${good_state}=  Evaluate
         ...  any(x in '${state}' for x in ('Absent', 'Enabled', 'UnavailableOffline'))
         Rprint Vars  gpu  state
-        Run Keyword If  not ${good_state}  Fail
-        ...  msg=GPU State is not Absent, Enabled, or UnavailableOffline.
+        IF  not ${good_state}
+            Fail  msg=GPU State is not Absent, Enabled, or UnavailableOffline.
+        END
     END
 
 
@@ -200,6 +200,7 @@
     [Documentation]  Get and return a tuple of lists of URIs for CPU,
     ...              GPU and PowerSupplies.
 
+
     ${processor_info}=  Redfish_Utils.Enumerate Request
     ...  ${SYSTEM_BASE_URI}Processors  return_json=0
 
diff --git a/redfish/update_service/test_redfish_image_upload.robot b/redfish/update_service/test_redfish_image_upload.robot
index f20af6f..62dccc5 100644
--- a/redfish/update_service/test_redfish_image_upload.robot
+++ b/redfish/update_service/test_redfish_image_upload.robot
@@ -148,7 +148,7 @@
     ...  valid_status_codes=[${HTTP_OK}, ${HTTP_INTERNAL_SERVER_ERROR}]
     ...  data=${image_data}
 
-    Return From Keyword If  ${resp.status_code} == ${HTTP_INTERNAL_SERVER_ERROR}
+    IF  ${resp.status_code} == ${HTTP_INTERNAL_SERVER_ERROR}  RETURN
 
     ${image_id}=  Get Latest Image ID
     Rprint Vars  image_id
@@ -169,7 +169,8 @@
     ...  body={"TransferProtocol" : "TFTP", "ImageURI" : "${TFTP_SERVER}/${image_file_name}"}
     Sleep  60s
     ${image_version}=  Get Image Version From TFTP Server  ${TFTP_SERVER}  ${image_file_name}
-    Return From Keyword If  '${image_version}' == '${EMPTY}'
+    IF  '${image_version}' == '${EMPTY}'  RETURN
+
     # Wait for image tar file to download complete.
     ${image_id}=  Wait Until Keyword Succeeds  60 sec  10 sec  Get Latest Image ID
     Rprint Vars  image_id
@@ -182,6 +183,6 @@
     [Documentation]  Do the post test teardown.
 
     FFDC On Test Case Fail
-    Run Keyword If  '${image_id}'  Delete Software Object
-    ...  /xyz/openbmc_project/software/${image_id}
-
+    IF  '${image_id}'
+        Delete Software Object  /xyz/openbmc_project/software/${image_id}
+    END
