diff --git a/src/slurmd/req.c b/src/slurmd/req.c
index 7b09998321a4ef8711700b79e18adcbf2b355313..e38b6c83d283a02af1f5a4e3f54f87749e5cec4e 100644
--- a/src/slurmd/req.c
+++ b/src/slurmd/req.c
@@ -897,6 +897,8 @@ _rpc_kill_job(slurm_msg_t *msg, slurm_addr *cli)
 		goto done;
 	}
 
+	save_cred_state(conf->vctx);
+
 	if (_run_epilog(req->job_id, req->job_uid) != 0) {
 		error ("[job %u] epilog failed", req->job_id);
 		rc = ESLURMD_EPILOG_FAILED;
diff --git a/src/slurmd/slurmd.c b/src/slurmd/slurmd.c
index 450df193d69fb53fbdbb656820fdb43c75e0a95b..c39ed90e45fd878e222b09bc2d662ade2e9ceb3a 100644
--- a/src/slurmd/slurmd.c
+++ b/src/slurmd/slurmd.c
@@ -168,7 +168,7 @@ main (int argc, char *argv[])
 	/* 
 	 * Restore any saved revoked credential information
 	 */
-	if (_restore_cred_state(conf->vctx))
+	if (!conf->cleanstart && (_restore_cred_state(conf->vctx) < 0))
 		return SLURM_FAILURE;
 	
 	if (interconnect_node_init() < 0)
@@ -537,7 +537,7 @@ _init_conf()
 	conf->port        =  0;
 	conf->daemonize   =  1;
 	conf->lfd         = -1;
-	conf->shm_cleanup =  0;
+	conf->cleanstart  =  0;
 	conf->log_opts    = lopts;
 	conf->debug_level = LOG_LEVEL_INFO;
 	conf->pidfile     = xstrdup(DEFAULT_SLURMD_PIDFILE);
@@ -573,7 +573,7 @@ _process_cmdline(int ac, char **av)
 			conf->logfile = xstrdup(optarg);
 			break;
 		case 'c':
-			conf->shm_cleanup = 1;
+			conf->cleanstart = 1;
 			break;
 		default:
 			_usage(c);
@@ -658,7 +658,7 @@ _slurmd_init()
 	/*
 	 * Cleanup shared memory if so configured
 	 */
-	if (conf->shm_cleanup) {
+	if (conf->cleanstart) {
 		/* 
 		 * Need to kill any running slurmd's here so they do
 		 *  not fail to lock shared memory on exit
@@ -695,8 +695,7 @@ _restore_cred_state(slurm_cred_ctx_t ctx)
 	int cred_fd, data_allocated, data_read = 0;
 	Buf buffer = NULL;
 
-	if ( (mkdir(conf->spooldir, 0755) < 0) 
-	   && (errno != EEXIST) ) {
+	if ( (mkdir(conf->spooldir, 0755) < 0) && (errno != EEXIST) ) {
 		fatal("mkdir(%s): %m", conf->spooldir);
 		return SLURM_ERROR;
 	}
diff --git a/src/slurmd/slurmd.h b/src/slurmd/slurmd.h
index 4d6769d95e0deb9ffb59811c4d2b44f1917e115c..f069457121bf1a8043f75b8f594b35954a9ed447 100644
--- a/src/slurmd/slurmd.h
+++ b/src/slurmd/slurmd.h
@@ -80,7 +80,7 @@ typedef struct slurmd_config {
 	log_options_t log_opts;         /* current logging options         */
 	int           debug_level;	/* logging detail level            */ 
 	int           daemonize:1;	/* daemonize flag	           */ 
-	int	      shm_cleanup:1;
+	int	      cleanstart:1;     /* clean start requested (-c)      */
 
 	slurm_cred_ctx_t vctx;          /* slurm_cred_t verifier context   */