diff --git a/lib/dump_utils.py b/lib/dump_utils.py
index 16bf224..7222a59 100755
--- a/lib/dump_utils.py
+++ b/lib/dump_utils.py
@@ -5,8 +5,11 @@
 """
 
 import gen_print as gp
+import gen_misc as gm
+import gen_robot_keyword as grk
 import bmc_ssh_utils as bsu
 import var_funcs as vf
+import os
 from robot.libraries.BuiltIn import BuiltIn
 import sys
 import os
@@ -42,7 +45,7 @@
     """
 
     quiet = int(gp.get_var_value(quiet, 1))
-    cmd_buf = "dump_dir_path=" + var.DUMP_DIR_PATH  + " ; " \
+    cmd_buf = "dump_dir_path=" + var.DUMP_DIR_PATH + " ; " \
               + "for dump_id in $(ls ${dump_dir_path} | sort -n) ; " \
               + "do echo -n $dump_id: ; ls ${dump_dir_path}${dump_id}/* ; done"
     output, stderr, rc = bsu.bmc_execute_command(cmd_buf, quiet=quiet)
@@ -88,3 +91,43 @@
         dump_file_path = dump_dict[dump_id]
         message += gp.sprint_var(dump_file_path)
         BuiltIn().fail(gp.sprint_error(message))
+
+
+def scp_dumps(targ_dir_path,
+              targ_file_prefix="",
+              dump_dict=None,
+              quiet=None):
+
+    r"""
+    SCP all dumps from the BMC to the indicated directory on the local system
+    and return a list of the new files.
+
+    Description of argument(s):
+    targ_dir_path                   The path of the directory to receive the
+                                    dump files.
+    targ_file_prefix                Prefix which will be pre-pended to each
+                                    target file's name.
+    dump_dict                       A dump dictionary such as the one returned
+                                    by get_dump_dict.  If this value is None,
+                                    this function will call get_dump_dict on
+                                    the caller's behalf.
+    quiet                           If quiet is set to 1, this function will
+                                    NOT write status messages to stdout.
+    """
+
+    targ_dir_path = gm.add_trailing_slash(targ_dir_path)
+
+    if dump_dict is None:
+        dump_dict = get_dump_dict(quiet=quiet)
+
+    status, ret_values = grk.run_key("Open Connection for SCP", quiet=quiet)
+
+    dump_file_list = []
+    for dump_id, source_file_path in dump_dict.iteritems():
+        targ_file_path = targ_dir_path + targ_file_prefix \
+            + os.path.basename(source_file_path)
+        status, ret_values = grk.run_key("scp.Get File  " + source_file_path +
+                                         "  " + targ_file_path, quiet=quiet)
+        dump_file_list.append(targ_file_path)
+
+    return dump_file_list
