diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index d443bceacf2198c6e9d99f897948231562acc81b..c54458d6e5b61a13af7d793ce387f24801e2a567 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -84,9 +84,11 @@ BEGIN_C_DECLS
 #if HAVE_INTTYPES_H
 #  include <inttypes.h>		/* for uint16_t, uint32_t definitions */
 #endif
+#include <stdbool.h>
 #include <stdio.h>		/* for FILE definitions */
+#include <sys/types.h>		/* for uid_t definition */
 #include <time.h>		/* for time_t definitions */
-#include <stdbool.h>
+#include <unistd.h>
 
 #ifdef CRAPPY_COMPILER
   /*
diff --git a/src/slurmctld/trigger_mgr.c b/src/slurmctld/trigger_mgr.c
index b45cc8a48c249c93fc5b21ed17716480d5d37968..80cd7b2bbbc4ec1f896c35039ea672dbefadd430 100644
--- a/src/slurmctld/trigger_mgr.c
+++ b/src/slurmctld/trigger_mgr.c
@@ -897,7 +897,11 @@ static void _trigger_run_program(trig_mgr_info_t *trig_in)
 		int i;
 		for (i=0; i<128; i++)
 			close(i);
+#ifdef SETPGRP_TWO_ARGS
+		setpgrp(0, 0);
+#else
 		setpgrp();
+#endif
 		setsid();
 		setuid(uid);
 		setgid(gid);
diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c
index 7aa389382a29f7653aec3adbc161e31a32e658bb..f59729a468c0793b37af801f518abe2890991e21 100644
--- a/src/slurmd/slurmstepd/mgr.c
+++ b/src/slurmd/slurmstepd/mgr.c
@@ -1736,7 +1736,11 @@ _run_script_as_user(const char *name, const char *path, slurmd_job_t *job,
 		}
 
 		chdir(job->cwd);
+#ifdef SETPGRP_TWO_ARGS
+		setpgrp(0, 0);
+#else
 		setpgrp();
+#endif
 		execve(path, argv, env);
 		error("execve(): %m");
 		exit(127);