diff --git a/NEWS b/NEWS
index db33f939a8619e934e76f7b369a02b08e4c6d2ab..d1f4848fdbbb9ea9bdf182efbc4b9f0ed259e2e2 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,7 @@ documents those changes that are of interest to users and admins.
     at termination
  -- set job's start_time and end_time = now rather than leaving zero if 
     they fail to execute
+ -- modify srun to forward SIGTERM
 
 * Changes in SLURM 0.4.0-pre4
 =============================
diff --git a/src/srun/signals.c b/src/srun/signals.c
index f052a1c3f49d259b6a1dfd66cf157af8e1ba4f87..4c50aebe0d7e920f05e0407d3d8441fdb00b905b 100644
--- a/src/srun/signals.c
+++ b/src/srun/signals.c
@@ -52,7 +52,7 @@
  *  Static list of signals to block in srun:
  */
 static int srun_sigarray[] = {
-	SIGINT,  SIGQUIT, SIGTSTP, SIGCONT, 
+	SIGINT,  SIGQUIT, SIGTSTP, SIGCONT, SIGTERM,
 	SIGALRM, SIGUSR1, SIGUSR2, SIGPIPE, 0
 };
 
@@ -102,7 +102,6 @@ sig_setup_sigmask(void)
 	if (xsignal_block(srun_sigarray) < 0)
 		return SLURM_ERROR;
 
-	xsignal(SIGTERM, &_sigterm_handler);
 	xsignal(SIGHUP,  &_sigterm_handler);
 
 	return SLURM_SUCCESS;
@@ -182,9 +181,6 @@ fwd_signal(job_t *job, int signo)
 static void
 _sigterm_handler(int signum)
 {
-	if (signum == SIGTERM) {
-		pthread_exit(0);
-	}
 }
 
 static void