diff --git a/NEWS b/NEWS
index dd8b735e77347af7c6a5e6538937c33d04f92a7c..aea5687c30d49603945f747d5d5fd2a3f6b0d7e5 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,10 @@ documents those changes that are of interest to users and admins.
 
 * Changes in SLURM 0.4.0-pre5
 =============================
+ -- select/bluegene plugin confirms db.properties file in $sysconfdir
+    and copies it to StateSaveLocation (slurmctld's working directory)
+ -- slurmd to always give jobs KillWait time between SIGTERM and SIGKILL
+    at termination
 
 * Changes in SLURM 0.4.0-pre4
 =============================
diff --git a/src/slurmd/req.c b/src/slurmd/req.c
index de5564069cb6c7f66180a2ac4f61ad7d025cc11d..27b790d9065723cde80c567951418cd314bc12ea 100644
--- a/src/slurmd/req.c
+++ b/src/slurmd/req.c
@@ -713,7 +713,8 @@ _rpc_timelimit(slurm_msg_t *msg, slurm_addr *cli_addr)
 	/*
 	 * Check to see if any processes are still around
 	 */
-	if ((nsteps > 0) && _job_still_running(req->job_id)) {
+	if ((nsteps > 0) && _job_still_running(req->job_id)
+	&&  (conf->cf.kill_wait > 1)) {
 		verbose( "Job %u: waiting %d secs for SIGKILL", 
 			 req->job_id, conf->cf.kill_wait       );
 		sleep (conf->cf.kill_wait - 1);
@@ -964,6 +965,7 @@ _rpc_kill_job(slurm_msg_t *msg, slurm_addr *cli)
 	kill_job_msg_t *req    = msg->data;
 	uid_t           uid    = g_slurm_auth_get_uid(msg->cred);
 	int             nsteps = 0;
+	int		delay;
 
 	/* 
 	 * check that requesting user ID is the SLURM UID
@@ -1032,7 +1034,8 @@ _rpc_kill_job(slurm_msg_t *msg, slurm_addr *cli)
 	/*
 	 *  Check for corpses
 	 */
-	if ( !_pause_for_job_completion (req->job_id, 5)
+	delay = MAX(conf->cf.kill_wait, 5);
+	if ( !_pause_for_job_completion (req->job_id, delay)
 	   && _kill_all_active_steps(req->job_id, SIGKILL, true) ) {
 		/*
 		 *  Block until all user processes are complete.