diff --git a/src/slurmd/elan_interconnect.c b/src/slurmd/elan_interconnect.c
index 7be5f6db5e650042002d9dfd37d40e465200b52e..a5f08704b998259d747e3ea7579db0f54fb45912 100644
--- a/src/slurmd/elan_interconnect.c
+++ b/src/slurmd/elan_interconnect.c
@@ -53,11 +53,9 @@ _wait_and_destroy_prg(qsw_jobinfo_t qsw_job)
 
 	debug3("going to destory program description...");
 
-	while(qsw_prgdestroy(qsw_job) < 0) {
+	while((qsw_prgdestroy(qsw_job) < 0) && (errno != ESRCH)) {
 		i++;
 		error("qsw_prgdestroy: %m");
-		if (errno == ESRCH)
-			break;
 		if (i == 1) {
 			debug("sending SIGTERM to remaining tasks");
 			qsw_prgsignal(qsw_job, SIGTERM);