diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c
index ec3f2c48378ff7a0c6204d4ab23707bf6dd18ffd..1d91494bff2271b45246b714b6c69754e02c0ec9 100644
--- a/src/slurmd/slurmd/req.c
+++ b/src/slurmd/slurmd/req.c
@@ -3504,6 +3504,13 @@ _getgroups(void)
 	return _alloc_gids(n, gg);
 }
 
+extern void 
+destroy_starting_step(void *x)
+{
+	xfree(x);
+}
+
+
 
 extern void
 init_gids_cache(int cache)
diff --git a/src/slurmd/slurmd/req.h b/src/slurmd/slurmd/req.h
index 7f9ef1884fb1347ccd2b88c161cdadd3494df323..1723769c3e5c927770a4e38bd5539551216fc5c5 100644
--- a/src/slurmd/slurmd/req.h
+++ b/src/slurmd/slurmd/req.h
@@ -48,6 +48,8 @@
  */
 void slurmd_req(slurm_msg_t *msg);
 
+void destroy_starting_step(void *x);
+
 int init_gids_cache(int cache);
 
 #endif
diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c
index 2b8516fdf9906b4c65095a18d33c9bd15e3d6825..e8de9408c4bde6f8617cbd87608c323a68442839 100644
--- a/src/slurmd/slurmd/slurmd.c
+++ b/src/slurmd/slurmd/slurmd.c
@@ -932,10 +932,10 @@ _init_conf(void)
 
 	slurm_mutex_init(&conf->config_mutex);
 
-	conf->starting_steps = list_create(NULL);
+	conf->starting_steps = list_create(destroy_starting_step);
 	slurm_mutex_init(&conf->starting_steps_lock);
 	pthread_cond_init(&conf->starting_steps_cond, NULL);
-	conf->prolog_running_jobs = list_create(NULL);
+	conf->prolog_running_jobs = list_create(slurm_destroy_uint32_ptr);
 	slurm_mutex_init(&conf->prolog_running_lock);
 	pthread_cond_init(&conf->prolog_running_cond, NULL);
 	return;