diff --git a/NEWS b/NEWS
index 26c10d94a35ca2e48b3ab293dc9fe0b0bd41de06..f49d2a9230d3291017e6cf4e298d9220aeace3c4 100644
--- a/NEWS
+++ b/NEWS
@@ -46,6 +46,7 @@ documents those changes that are of interest to users and admins.
  -- handle error state in sinfo
  -- sview and "scontrol show config" now report as SLURM_VERSION the version 
     of slurmctld rather than that of the command.
+ -- Change SuspendTime configuration parameter from 16-bits to 32-bits.
 
 * Changes in SLURM 2.1.0-pre4
 =============================
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index a654f1a829ae5919b7a27fba11541f9e08addeb6..eece71a9567d5c46c83568f7e599f7e4584735b6 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -1374,7 +1374,7 @@ typedef struct slurm_ctl_conf {
 	char *suspend_exc_parts;/* partitions to not make power saving */
 	char *suspend_program;	/* program to make nodes power saving */
 	uint16_t suspend_rate;	/* nodes to make power saving, per minute */
-	uint16_t suspend_time;	/* node idle for this long before power save mode */
+	uint32_t suspend_time;	/* node idle for this long before power save mode */
 	uint16_t suspend_timeout;/* time required in order to perform a node
 				 * suspend operation */
 	char *switch_type;	/* switch or interconnect type */
diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index 37cf5135264870c133970accc118a582c0881124..5b36ff0880942c2a2896a1a634b626995bde6fd5 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -248,9 +248,9 @@ uint16_t slurm_get_resume_timeout(void)
 /* slurm_get_suspend_time
  * RET SuspendTime value from slurm.conf
  */
-uint16_t slurm_get_suspend_time(void)
+uint32_t slurm_get_suspend_time(void)
 {
-	uint16_t suspend_time = 0;
+	uint32_t suspend_time = 0;
 	slurm_ctl_conf_t *conf;
 
 	if(slurmdbd_conf) {
diff --git a/src/common/slurm_protocol_api.h b/src/common/slurm_protocol_api.h
index 69a8edab9824f7bfa2365392ca35e6573b092025..cc6e6bbaa788b4f65581197a3365c48a94bd5c0e 100644
--- a/src/common/slurm_protocol_api.h
+++ b/src/common/slurm_protocol_api.h
@@ -111,7 +111,7 @@ uint16_t slurm_get_resume_timeout(void);
 /* slurm_get_suspend_time
  * RET SuspendTime value from slurm.conf
  */
-uint16_t slurm_get_suspend_time(void);
+uint32_t slurm_get_suspend_time(void);
 
 /* slurm_get_complete_wait
  * RET CompleteWait value from slurm.conf
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 2295e288a0968051d2960b7e34416f958e4e8814..efa772a2130db2c7dd97ddec2aa65926f9645199 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -3060,7 +3060,7 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer)
 	packstr(build_ptr->suspend_exc_parts, buffer);
 	packstr(build_ptr->suspend_program, buffer);
 	pack16(build_ptr->suspend_rate, buffer);
-	pack16(build_ptr->suspend_time, buffer);
+	pack32(build_ptr->suspend_time, buffer);
 	pack16(build_ptr->suspend_timeout, buffer);
 	packstr(build_ptr->switch_type, buffer);
 
@@ -3296,7 +3296,7 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t **
 	safe_unpackstr_xmalloc(&build_ptr->suspend_program,
 			       &uint32_tmp, buffer);
 	safe_unpack16(&build_ptr->suspend_rate, buffer);
-	safe_unpack16(&build_ptr->suspend_time, buffer);
+	safe_unpack32(&build_ptr->suspend_time, buffer);
 	safe_unpack16(&build_ptr->suspend_timeout, buffer);
 	safe_unpackstr_xmalloc(&build_ptr->switch_type, &uint32_tmp, buffer);
 
diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c
index fd1a4ae8a2e648edd80919a27f35e3be8241dbc9..f588f0a2dd456af52e2c1a70a4ed847cb07b66ed 100644
--- a/src/slurmctld/job_mgr.c
+++ b/src/slurmctld/job_mgr.c
@@ -5780,7 +5780,7 @@ static void _purge_missing_jobs(int node_inx, time_t now)
 	uint16_t batch_start_timeout	= slurm_get_batch_start_timeout();
 	uint16_t msg_timeout		= slurm_get_msg_timeout();
 	uint16_t resume_timeout		= slurm_get_resume_timeout();
-	uint16_t suspend_time		= slurm_get_suspend_time();
+	uint32_t suspend_time		= slurm_get_suspend_time();
 	time_t batch_startup_time, node_boot_time = (time_t) 0, startup_time;
 
 	if (node_ptr->up_time) {