diff --git a/src/api/job_step_info.c b/src/api/job_step_info.c
index b52f7942b5272ffb1e92850d534e691dcb5403a2..effcb6cfba734764e6fac6fbdccddabdc3bc1cf6 100644
--- a/src/api/job_step_info.c
+++ b/src/api/job_step_info.c
@@ -1,9 +1,9 @@
 /*****************************************************************************\
- *  job_info.c - get/print the job state information of slurm
+ *  job_info.c - get/print the job step state information of slurm
  *****************************************************************************
  *  Copyright (C) 2002 The Regents of the University of California.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- *  Written by Moe Jette <jette1@llnl.gov> et. al.
+ *  Written by Moe Jette <jette1@llnl.gov>, Joey Ekstrom <ekstrom1@llnl.gov> et. al.
  *  UCRL-CODE-2002-040.
  *  
  *  This file is part of SLURM, a resource management program.
@@ -35,6 +35,34 @@
 #include <src/api/slurm.h>
 #include <src/common/slurm_protocol_api.h>
 
+/* slurm_print_job_step_info_msg - output information about all Slurm job steps */
+void 
+slurm_print_job_step_info_msg ( FILE* out, job_step_info_response_msg_t * job_step_info_msg_ptr )
+{
+	int i;
+	job_step_info_t * job_step_ptr = job_step_info_msg_ptr -> job_steps ;
+
+	fprintf( out, "Job steps updated at %ld, record count %d\n",
+		(long) job_step_info_msg_ptr ->last_update, job_step_info_msg_ptr->job_step_count);
+
+	for (i = 0; i < job_step_info_msg_ptr-> job_step_count; i++) 
+	{
+		slurm_print_job_step_info ( out, & job_step_ptr[i] ) ;
+	}
+}
+
+/* slurm_print_job_step_info - output information about a specific Slurm job step */
+void
+slurm_print_job_step_info ( FILE* out, job_step_info_t * job_step_ptr )
+{
+	int j;
+
+	fprintf ( out, "JobId=%u StepId=%u UserId=%u ", 
+		job_step_ptr->job_id, job_step_ptr->step_id, job_step_ptr->user_id);
+	fprintf ( out, "StartTime=%ld Partition=%s Nodes=%s\n\n", 
+		(long)job_step_ptr->start_time, job_step_ptr->partition, job_step_ptr->nodes);
+}
+
 /* slurm_load_job_steps - issue RPC to get Slurm job_step state information */
 int
 slurm_get_job_steps ( uint32_t job_id, int16_t step_id, job_step_info_response_msg_t **step_response_pptr)
diff --git a/src/api/slurm.h b/src/api/slurm.h
index 77d97115d7bbdfed4c35365e7dc52db0c9f4bb0c..393d0f5fdd6fe9233e4feef5ffa150314830bac5 100644
--- a/src/api/slurm.h
+++ b/src/api/slurm.h
@@ -118,6 +118,9 @@ extern int slurm_submit_batch_job (job_desc_msg_t * job_desc_msg,
 		submit_response_msg_t ** slurm_alloc_msg );
 
 extern int slurm_get_job_steps ( uint32_t job_id, int16_t step_id, job_step_info_response_msg_t **step_response_pptr);
+extern void  slurm_print_job_step_info_msg ( FILE* out, job_step_info_response_msg_t * job_step_info_msg_ptr );
+extern void slurm_print_job_step_info ( FILE* out, job_step_info_t * job_step_ptr );
+
 /*
  * slurm_will_run - determine if a job would execute immediately 
  *	if submitted.