diff --git a/syslib/utils_install.robot b/syslib/utils_install.robot
index 4f1d37e..cb71dd3 100755
--- a/syslib/utils_install.robot
+++ b/syslib/utils_install.robot
@@ -78,9 +78,11 @@
     #            (e.g. http://server.com/projects/htx_package.rpm )
 
 
-    OS Execute Command  wget ${htx_rpm}  ignore_err=1
+    ${stdout}  ${stderr}  ${rc}  OS Execute Command
+    ...  wget ${htx_rpm}  ignore_err=1
+    Should Not Contain  ${stderr}  ERROR
     @{str}=  Split String From Right  ${htx_rpm}  /  1
-    SSHLibrary.File Should Exist  ${str[1]}
+
     # Remove the old version.
     OS Execute Command  rpm -e `rpm -qa | grep htx`  ignore_err=1
     OS Execute Command  rpm -Uvh ${str[1]}
diff --git a/syslib/utils_os.robot b/syslib/utils_os.robot
index 942d26e..ac61680 100755
--- a/syslib/utils_os.robot
+++ b/syslib/utils_os.robot
@@ -426,6 +426,10 @@
 
 Check HTX Run Status
     [Documentation]  Get HTX exerciser status and check for error.
+    [Arguments]  ${sleep_time}=${EMPTY}
+
+    # Description of argument(s):
+    # sleep_time  The amount of time to sleep after checking status.
 
     Rprint Timen  Check HTX mdt Status and error.
     ${htx_status}=  Execute Command On OS
@@ -438,6 +442,10 @@
     Should Contain  ${htx_errlog}  file </tmp/htxerr> is empty
     ...  msg=HTX geterrorlog was not empty.
 
+    Return From Keyword If  ${sleep_time} == ${EMPTY}
+
+    Run Key U  Sleep \ ${sleep-time}
+
 
 Shutdown HTX Exerciser
     [Documentation]  Shut down HTX exerciser run.
diff --git a/systest/os_install_boot_stress.robot b/systest/os_install_boot_stress.robot
new file mode 100644
index 0000000..cee9510
--- /dev/null
+++ b/systest/os_install_boot_stress.robot
@@ -0,0 +1,78 @@
+*** Settings ***
+
+Documentation  Install RHEL OS and run an HTX bootme.
+
+# TEST PARAMETERS:
+#   OPENBMC_HOST                The BMC host name or IP address.
+#   OPENBMC_USERNAME            The BMC user name.
+#   OPENBMC_PASSWORD            The BMC password.
+#   OS_HOST                     The OS host name or IP address.
+#   OS_USERNAME                 The OS Host user name.
+#   OS_PASSWORD                 The OS Host password.
+#   FTP_USERNAME                The FTP username.
+#   FTP_PASSWORD                The FTP password.
+#   OS_REPO_URL                 The URL for the OS to be installed.
+#                               (e.g "ftp.com/redhat/RHEL/Server/os/").
+#   Optional Paramters:
+#     HTX_DURATION              The duration of the HTX run (e.g 2h,3m)
+#                               Defaults to 2h.
+#     HTX_INTERVAL              The time delay between checks of HTX
+#                               status, defaults to 10m.
+#     HTX_LOOPS                 The number of times to loop through
+#                               htx, defualts to 2.
+#     DEBUG                     If this is set, extra debug information
+#                               will be printed out, defaults to 1.
+
+Resource             ../syslib/utils_install.robot
+
+Suite Teardown  Collect HTX Log Files
+
+*** Variables ***
+${HTX_DURATION}      2h
+${HTX_INTERVAL}      10m
+${HTX_LOOPS}         2
+${DEBUG}             1
+
+
+*** Test Cases ***
+OS Install
+    [Documentation]  Install the given OS through the network.
+    [Tags]  OS_Install
+
+    ${cmd}=  Catenate  sol_utils.tcl --os_host=${OS_HOST}
+    ...  --os_password=${OS_PASSWORD} --os_username=${OS_USERNAME}
+    ...  --openbmc_host=${OPENBMC_HOST}
+    ...  --openbmc_password=${OPENBMC_PASSWORD}
+    ...  --openbmc_username=${OPENBMC_USERNAME}
+    ...  --proc_name=install_os  --debug=${DEBUG}
+    ...  --ftp_username=${FTP_USERNAME}  --ftp_password=${FTP_PASSWORD}
+    ...  --os_repo_url=${os_repo_url}
+    ${rc}  ${out_buf}=  Cmd Fnc  ${cmd}
+
+
+ Configure Yum Repository For FTP3
+    [Documentation]  Configure Yum repository for ftp3 server on pegas.
+    ...  This is needed for HTX to be installed.
+    [Tags]  Configure_Yum_Repository_For_FTP3
+
+    ${cmd}=  Catenate
+     ...  printf "[pegas-ga-ftp3-server]\nname=pegas-ga-ftp3-server
+     ...  \nbaseurl=ftp://${FTP_USERNAME}:${FTP_PASSWORD}@${OS_REPO_URL}
+     ...  \nenabled=1\ngpgcheck=0"  > /etc/yum.repos.d/pegas_ga.repo
+    ${stdout}  ${stderr}  ${rc}=  OS Execute Command  ${cmd}
+    ${stdout}  ${stderr}  ${rc}=  OS Execute Command  yum update
+    Should Be Empty  ${stderr}
+    ...  msg=Yum update returned an error. Verify ftp credentials.
+
+
+Install HTX And Run Bootme
+    [Documentation]  Install HTX and start extended bootme run.
+    [Tags]  Install_HTX_And_Run_Bootme
+
+    Install HTX On RedHat  ${htx_rpm}
+    Login To OS
+    Repeat Keyword  ${HTX_LOOPS} times  Run Keywords
+    ...  Run MDT Profile
+    ...  AND  Repeat Keyword  ${HTX_DURATION}
+    ...  Check HTX Run Status  ${HTX_INTERVAL}
+    ...  AND  Shutdown HTX Exerciser
\ No newline at end of file
