diff --git a/NEWS b/NEWS
index bf74df36b71289d7ea997decf6305b8bf9be5118..de56f3538103bed34fb4140446f59621b1236a2e 100644
--- a/NEWS
+++ b/NEWS
@@ -233,6 +233,7 @@ documents those changes that are of interest to users and administrators.
     in slurm.conf) when using FastSchedule=0.
  -- Fix parsing in regression test1.92 for some prompts.
  -- sbcast - use slurmd's gid cache rather than a separate lookup.
+ -- slurmd - return error if setgroups() call fails in _drop_privileges().
 
 * Changes in Slurm 16.05.6
 ==========================
diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c
index f7a1ac26655eb87cf8ce1cf678f7384238acce1b..66eae0f7e5c0247e9598ed0f1e1ce5b406fccc16 100644
--- a/src/slurmd/slurmstepd/mgr.c
+++ b/src/slurmd/slurmstepd/mgr.c
@@ -2466,6 +2466,7 @@ _drop_privileges(stepd_step_rec_t *job, bool do_setuid,
 
 	if (_initgroups(job) < 0) {
 		error("_initgroups: %m");
+		return -1;
 	}
 
 	if (do_setuid && seteuid(job->uid) < 0) {