diff --git a/NEWS b/NEWS
index 8e64a65b70c5d2b9f3a502477dad60928e6eda48..371a97457e94fcf62090a8fac607e08f3e613c01 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ documents those changes that are of interest to users and admins.
 
 * Changes in SLURM 0.5.0-pre2
 =============================
+ -- Fix bug in srun to clean-up upon failure of an allocated node
+    (srun -A would generate a segmentation fault, Chris Holmes, HP).
 
 * Changes in SLURM 0.5.0-pre1
 =============================
diff --git a/src/srun/msg.c b/src/srun/msg.c
index 27969561753ce10c90532c501b039087a3176c8e..059f7083581cd8353952c0b52b74ffe7fd178c2b 100644
--- a/src/srun/msg.c
+++ b/src/srun/msg.c
@@ -207,7 +207,8 @@ static void _node_fail_handler(char *nodelist, job_t *job)
 	update_job_state(job, SRUN_JOB_FORCETERM);
 	info("sending Ctrl-C to remaining tasks");
 	fwd_signal(job, SIGINT);
-	pthread_kill(job->ioid,  SIGHUP);
+	if (job->ioid)
+		pthread_kill(job->ioid,  SIGHUP);
 }
 
 static bool _job_msg_done(job_t *job)