diff --git a/extended/obmc_boot_test.robot b/extended/obmc_boot_test.robot
index 03a6157..c1f5399 100644
--- a/extended/obmc_boot_test.robot
+++ b/extended/obmc_boot_test.robot
@@ -9,6 +9,7 @@
 Resource  ../lib/openbmc_ffdc.robot
 
 Library   ../lib/gen_robot_print.py
+Library   ../lib/gen_misc.py
 Library   ../lib/gen_robot_plug_in.py
 Library   ../lib/gen_robot_valid.py
 Library   ../lib/state.py
@@ -27,7 +28,8 @@
 ...  pdu_username  pdu_password  pdu_slot_no  openbmc_serial_host
 ...  openbmc_serial_port  boot_stack  boot_list  max_num_tests
 ...  plug_in_dir_paths  status_file_path  openbmc_model  boot_pass  boot_fail
-...  ffdc_dir_path_style  ffdc_check  test_mode  quiet  debug
+...  ffdc_dir_path_style  ffdc_check  state_change_timeout  power_on_timeout
+...  power_on_timeout  test_mode  quiet  debug
 
 # Initialize each program parameter.
 ${openbmc_nickname}         ${EMPTY}
@@ -56,6 +58,9 @@
 ${boot_fail}                ${0}
 ${ffdc_dir_path_style}      ${EMPTY}
 ${ffdc_check}               ${EMPTY}
+${state_change_timeout}     1 min
+${power_on_timeout}         14 mins
+${power_off_timeout}        2 mins
 ${test_mode}                0
 ${quiet}                    0
 ${debug}                    0
@@ -140,7 +145,7 @@
     ${temp_state}=  Run Keyword If  '${test_mode}' == '0'  Get State
     ...  ELSE  Create Dictionary  &{default_state}
     Set Global Variable  &{state}  &{temp_state}
-    rpvars  state
+    Rpvars  state
 
 ###############################################################################
 
@@ -178,6 +183,9 @@
     ${temp_arr}=  Rvalidate Plug Ins  ${plug_in_dir_paths}
     Set Global Variable  @{plug_in_packages_list}  @{temp_arr}
 
+    Run Keyword If  '${openbmc_nickname}' == '${EMPTY}'
+    ...  Set Global Variable  ${openbmc_nickname}  ${openbmc_host}
+
     Set FFDC Dir Path Style
 
 ###############################################################################
@@ -221,6 +229,9 @@
     ${loc_next_boot}=  Select Boot  ${state['power']}
     Set Global Variable  ${next_boot}  ${loc_next_boot}
 
+    # Clear this file.  Plug-ins may now write to it.
+    Remove File  ${FFDC_LIST_FILE_PATH}
+
     ${status}  ${msg}=  Run Keyword And Ignore Error  Run Boot  ${next_boot}
     Run Keyword If  '${status}' == 'FAIL'  rprint  ${msg}
 
@@ -240,7 +251,12 @@
     ${rc}  ${shell_rc}  ${failed_plug_in_name}=  Rprocess Plug In Packages
     ...  call_point=post_test_case  stop_on_plug_in_failure=1
 
-    Run Keyword If  '${BOOT_STATUS}' != 'PASS' or '${FFDC_CHECK}' == 'All'
+    ${rc}  ${shell_rc}  ${failed_plug_in_name}=  Rprocess Plug In Packages
+    ...  call_point=ffdc_check  shell_rc=${0x00000200}
+    ...  stop_on_plug_in_failure=1  stop_on_non_zero_rc=1
+
+    Run Keyword If
+    ...  '${BOOT_STATUS}' != 'PASS' or '${FFDC_CHECK}' == 'All' or '${shell_rc}' == '${0x00000200}'
     ...  Run Keyword and Continue On Failure  My FFDC
 
     # Run plug-ins to see if we ought to stop execution.
@@ -279,7 +295,7 @@
     ...  **ERROR** BMC not in state to power on or off: "${power}"  AND
     ...  Fatal Error
 
-    [Return]  ${boot}
+    [return]  ${boot}
 
 ###############################################################################
 
@@ -296,7 +312,7 @@
     # selecting randomly.
     ${chosen}=  Set Variable  @{power_on_choices}[0]
 
-    [Return]  ${chosen}
+    [return]  ${chosen}
 
 ###############################################################################
 
@@ -313,7 +329,7 @@
     # selecting randomly.
     ${chosen}=  Set Variable  @{power_off_choices}[0]
 
-    [Return]  ${chosen}
+    [return]  ${chosen}
 
 ###############################################################################
 
@@ -363,29 +379,8 @@
 
 
 ###############################################################################
-My FFDC
-    [Documentation]  Collect FFDC data.
-
-    # FFDC_LOG_PATH is used by "FFDC" keyword.
-    Set Global Variable  ${FFDC_LOG_PATH}  ${FFDC_DIR_PATH}
-
-    @{cmd_buf}=  Create List  FFDC
-    rqpissuing_keyword  ${cmd_buf}  ${test_mode}
-    Run Keyword If  '${test_mode}' == '0'  @{cmd_buf}
-
-    Plug In Setup
-    ${rc}  ${shell_rc}  ${failed_plug_in_name}=  Rprocess Plug In Packages
-    ...  call_point=ffdc  stop_on_plug_in_failure=1
-
-    Log Defect Information
-
-###############################################################################
-
-
-###############################################################################
-Log Defect Information
-    [Documentation]  Logs information needed for a defect. This information
-    ...  can also be found within the FFDC gathered.
+Print Defect Report
+    [Documentation]  Print a defect report.
 
     Rqprintn
     # indent=0, width=90, linefeed=1, char="="
@@ -395,18 +390,29 @@
 
     Rqpvars  @{parm_list}
     Print Last Ten Boots
+    Rqprintn
+    Rqpvars  state
 
-    ${rc}  ${output}=  Run Keyword If  '${test_mode}' == '0'
-    ...  Run and return RC and Output  ls ${LOG_PREFIX}*
-    ...  ELSE  Set Variable  ${0}  ${EMPTY}
+    # At some point I'd like to have the 'Call FFDC Methods' return a list
+    # of files it has collected.  In that case, the following "ls" command
+    # would no longer be needed.  For now, however, ls shows the files
+    # named in FFDC_LIST_FILE_PATH so I will refrain from printing those
+    # out (so we don't see duplicates in the list).
+
+    ${rc}  ${output}=  Run and return RC and Output  ls ${LOG_PREFIX}*
 
     Run Keyword If  '${rc}' != '${0}' and '${rc}' != 'None'  rqpvars  rc
+    ${status}  ${ffdc_list}=  Run Keyword and Ignore Error
+    ...  OperatingSystem.Get File  ${FFDC_LIST_FILE_PATH}
 
     Rqprintn
     Rqprintn  FFDC data files:
+    Run Keyword If  '${status_file_path}' != '${EMPTY}'
+    ...  Rqprintn  ${status_file_path}
     Rqprintn  ${output}
-
+    # Run Keyword If  '${status}' == 'PASS'  Rqprintn  ${ffdc_list}
     Rqprintn
+
     Rqprint Dashes  ${0}  ${90}  ${1}  =
 
 ###############################################################################
diff --git a/lib/obmc_boot_test.py b/lib/obmc_boot_test.py
index 24be494..eb379a4 100755
--- a/lib/obmc_boot_test.py
+++ b/lib/obmc_boot_test.py
@@ -6,6 +6,8 @@
 
 from tally_sheet import *
 import gen_robot_print as grp
+import gen_robot_plug_in as grpi
+import state as st
 
 import os
 import time
@@ -27,19 +29,6 @@
 
 
 ###############################################################################
-def add_trailing_slash(path):
-
-    r"""
-    Add a trailing slash to path if it doesn't already have one and return it.
-
-    """
-
-    return os.path.normpath(path) + os.path.sep
-
-###############################################################################
-
-
-###############################################################################
 def plug_in_setup():
 
     r"""
@@ -79,9 +68,8 @@
     openbmc_nickname = BuiltIn().get_variable_value("${openbmc_nickname}")
     openbmc_host = BuiltIn().get_variable_value("${openbmc_host}")
     if openbmc_nickname == "":
-        ffdc_prefix = openbmc_host
-    else:
-        ffdc_prefix = openbmc_nickname
+        openbmc_nickname = openbmc_host
+    ffdc_prefix = openbmc_nickname
 
     ffdc_prefix += "." + time_string
 
@@ -93,14 +81,18 @@
         ffdc_dir_path = ""
     BuiltIn().set_global_variable("${FFDC_DIR_PATH}", ffdc_dir_path)
 
-    try:
-        base_tool_dir_path = os.environ['AUTOBOOT_BASE_TOOL_DIR_PATH']
-    except KeyError:
-        base_tool_dir_path = "/tmp/"
+    status_dir_path = os.environ.get('STATUS_DIR_PATH', "")
+    if status_dir_path != "":
+        # Add trailing slash.
+        status_dir_path = os.path.normpath(status_dir_path) + os.sep
+    BuiltIn().set_global_variable("${STATUS_DIR_PATH}", status_dir_path)
+
+    base_tool_dir_path = os.environ.get('AUTOBOOT_BASE_TOOL_DIR_PATH', "/tmp")
     base_tool_dir_path = os.path.normpath(base_tool_dir_path) + os.sep
     BuiltIn().set_global_variable("${BASE_TOOL_DIR_PATH}", base_tool_dir_path)
 
-    ffdc_list_file_path = base_tool_dir_path + openbmc_host + "/FFDC_FILE_LIST"
+    ffdc_list_file_path = base_tool_dir_path + openbmc_nickname +\
+        "/FFDC_FILE_LIST"
 
     BuiltIn().set_global_variable("${FFDC_LIST_FILE_PATH}",
                                   ffdc_list_file_path)
@@ -111,7 +103,8 @@
     additional_values = ["boot_type_desc", "boot_success", "boot_pass",
                          "boot_fail", "test_really_running", "program_pid",
                          "master_pid", "ffdc_prefix", "ffdc_dir_path",
-                         "base_tool_dir_path", "ffdc_list_file_path"]
+                         "status_dir_path", "base_tool_dir_path",
+                         "ffdc_list_file_path"]
     BuiltIn().set_global_variable("${ffdc_prefix}", ffdc_prefix)
 
     parm_list = BuiltIn().get_variable_value("@{parm_list}")
@@ -205,3 +198,36 @@
     grp.rprint(header_footer)
 
 ###############################################################################
+
+
+###############################################################################
+def my_ffdc():
+
+    r"""
+    Collect FFDC data.
+    """
+
+    plug_in_setup()
+    rc, shell_rc, failed_plug_in_name = grpi.rprocess_plug_in_packages(
+        call_point='ffdc', stop_on_plug_in_failure=1)
+
+    AUTOBOOT_FFDC_PREFIX = os.environ['AUTOBOOT_FFDC_PREFIX']
+
+    # FFDC_LOG_PATH is used by "FFDC" keyword.
+    FFDC_DIR_PATH = BuiltIn().get_variable_value("${FFDC_DIR_PATH}")
+    BuiltIn().set_global_variable("${FFDC_LOG_PATH}",
+                                  FFDC_DIR_PATH)
+
+    cmd_buf = ["FFDC", "ffdc_prefix=" + AUTOBOOT_FFDC_PREFIX]
+    grp.rpissuing_keyword(cmd_buf)
+    BuiltIn().run_keyword(*cmd_buf)
+
+    state = st.get_state()
+    BuiltIn().set_global_variable("${state}",
+                                  state)
+
+    cmd_buf = ["Print Defect Report"]
+    grp.rpissuing_keyword(cmd_buf)
+    BuiltIn().run_keyword(*cmd_buf)
+
+###############################################################################
