diff --git a/src/srun/io.c b/src/srun/io.c
index 384d561d60c98bc93b62a1ec258e515eaa4ce724..d4d206a8dc8dc362f36076bfb66766c253989d94 100644
--- a/src/srun/io.c
+++ b/src/srun/io.c
@@ -293,11 +293,26 @@ static char *_host_state_name(host_state_t state_inx)
 
 void report_task_status(job_t *job)
 {
-	int i;
+	int i, j;
+	int first_task, last_task;
+	task_state_t current_state;
 
 	for (i = 0; i < opt.nprocs; i++) {
-		info ("task:%d state:%s", i, 
-		      _task_state_name(job->task_state[i]));
+		current_state = job->task_state[i];
+		first_task = last_task = i;
+		for (j = (i+1); j < opt.nprocs; j++) {
+			if (current_state == job->task_state[i])
+				last_task = j;
+			else
+				break;
+		}
+		if (first_task == last_task)
+			info ("task:%d state:%s", first_task, 
+			      _task_state_name(current_state));
+		else
+			info ("tasks:%d-%d state:%s", first_task, last_task, 
+			      _task_state_name(current_state));
+		i = last_task;
 	}
 }
 
diff --git a/src/srun/srun.c b/src/srun/srun.c
index 736e60ca5ec395fb1894886b35b82c7905f4df14..bc7e016d87fa9080e4326460d2960fad119db7e4 100644
--- a/src/srun/srun.c
+++ b/src/srun/srun.c
@@ -517,6 +517,7 @@ _sig_thr(void *arg)
 		switch (signo) {
 		  case SIGINT:
 			if ((time(NULL) - last_intr) > 1) {
+				info("interrupt (one more within 1 sec to abort)");
 				report_task_status(job);
 				last_intr = time(NULL);
 			 } else  { /* second Ctrl-C in half as many seconds */