diff --git a/META b/META
index 6c2222c9f3b60c26e2c31c2636f2982c1430a9b5..2886e9d30a00c45f5e6d1a4fe9b7a5170897cf53 100644
--- a/META
+++ b/META
@@ -12,6 +12,6 @@
   Micro:        1
   Version:	1.3.1
   Release:	1
-  API_CURRENT:	12	
-  API_AGE:	1
+  API_CURRENT:	13
+  API_AGE:	0
   API_REVISION:	0
diff --git a/NEWS b/NEWS
index 27c11c2a6d237f4705d9dc4feb85f778ee3cccdc..8be11dbc06fd5835d7e0ef154aee62d33992e0c2 100644
--- a/NEWS
+++ b/NEWS
@@ -16,6 +16,9 @@ documents those changes that are of interest to users and admins.
     Doug Wightman, CRI).
  -- Fix bug if sched/wiki or sched/wiki2 are configured and no job comment is 
     set.
+ -- scontrol modified to report partition partition's "DisableRootJobs" value.
+ -- NOTE: We needed to change an RPC from version 1.3.0. You must upgrade 
+    all nodes in a cluster from v1.3.0 to v1.3.1 at the same time.
 
 * Changes in SLURM 1.3.1
 ========================
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index fe192dfb51e38f3c525bfaadd8002f2d9a9a51ad..e74e1c8e16c84b6635622f596f4078b24e78ff66 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -865,25 +865,26 @@ typedef struct job_alloc_info_msg {
 } job_alloc_info_msg_t;
 
 typedef struct partition_info {
-	char *name;		/* name of the partition */
-	uint32_t max_time;	/* minutes or INFINITE */
-	uint32_t max_nodes;	/* per job or INFINITE */
-	uint32_t min_nodes;	/* per job */
-	uint32_t total_nodes;	/* total number of nodes in the partition */
-	uint32_t total_cpus;	/* total number of cpus in the partition */
-	uint16_t node_scaling;	/* select plugin node scaling factor */
+	char *allow_groups;	/* comma delimited list of groups, 
+				 * null indicates all */
 	uint16_t default_part;	/* 1 if this is default partition */
+	uint16_t disable_root_jobs; /* 1 if user root jobs disabled */
 	uint16_t hidden;	/* 1 if partition is hidden by default */
-	uint16_t priority;	/* scheduling priority for jobs */
-	uint16_t root_only;	/* 1 if allocate must come for user root */
+	uint32_t max_nodes;	/* per job or INFINITE */
 	uint16_t max_share;	/* number of jobs to gang schedule */
-	uint16_t state_up;	/* 1 if state is up, 0 if down */
-	char *nodes;		/* list names of nodes in partition */
+	uint32_t max_time;	/* minutes or INFINITE */
+	uint32_t min_nodes;	/* per job */
+	char *name;		/* name of the partition */
 	int *node_inx;		/* list index pairs into node_table:
 				 * start_range_1, end_range_1, 
 				 * start_range_2, .., -1  */
-	char *allow_groups;	/* comma delimited list of groups, 
-				 * null indicates all */
+	uint16_t node_scaling;	/* select plugin node scaling factor */
+	char *nodes;		/* list names of nodes in partition */
+	uint16_t priority;	/* scheduling priority for jobs */
+	uint16_t root_only;	/* 1 if allocate must come for user root */
+	uint16_t state_up;	/* 1 if state is up, 0 if down */
+	uint32_t total_cpus;	/* total number of cpus in the partition */
+	uint32_t total_nodes;	/* total number of nodes in the partition */
 } partition_info_t;
 
 typedef struct delete_partition_msg {
diff --git a/src/api/config_info.c b/src/api/config_info.c
index ba4556c8c08930209133a3ec71e5d867bea217c7..e649accd835dd8200a132199883a7b77c4ad8652 100644
--- a/src/api/config_info.c
+++ b/src/api/config_info.c
@@ -158,8 +158,10 @@ void slurm_print_ctl_conf ( FILE* out,
 			slurm_ctl_conf_ptr->def_mem_per_task);
 	} else
 		fprintf(out, "DefMemPerTask           = UNLIMITED\n");
-	fprintf(out, "DisableRootJobs         = %u\n",
-		slurm_ctl_conf_ptr->disable_root_jobs);
+	if (slurm_ctl_conf_ptr->disable_root_jobs)
+		fprintf(out, "DisableRootJobs         = YES\n");
+	else
+		fprintf(out, "DisableRootJobs         = NO\n");
 	fprintf(out, "Epilog                  = %s\n",
 		slurm_ctl_conf_ptr->epilog);
 	fprintf(out, "EpilogMsgTime           = %u\n",
diff --git a/src/api/partition_info.c b/src/api/partition_info.c
index 022778526fa3c7a74626c5e00d08550a5b96e990..ff6fba9012119d88e7a9833b57486edf6951f0b7 100644
--- a/src/api/partition_info.c
+++ b/src/api/partition_info.c
@@ -1,8 +1,8 @@
 /*****************************************************************************\
  *  partition_info.c - get/print the partition state information of slurm
- *  $Id$
  *****************************************************************************
  *  Copyright (C) 2002-2007 The Regents of the University of California.
+ *  Copyright (C) 2008 Lawrence Livermore National Security.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
  *  Written by Morris Jette <jette1@llnl.gov> et. al.
  *  LLNL-CODE-402394.
@@ -202,6 +202,11 @@ char *slurm_sprint_partition_info ( partition_info_t * part_ptr,
 		sprintf(tmp_line, "MaxNodes=%s ", tmp1);
 	}
 	xstrcat(out, tmp_line);
+	if (part_ptr->disable_root_jobs)
+		sprintf(tmp_line, "DisableRootJobs=YES ");
+	else
+		sprintf(tmp_line, "DisableRootJobs=NO ");
+	xstrcat(out, tmp_line);
 	if ((part_ptr->allow_groups == NULL) || 
 	    (part_ptr->allow_groups[0] == '\0'))
 		sprintf(tmp_line, "AllowGroups=ALL");
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 4672025bba251bae3b4bbdd32e0b79a3c5d00a79..a0abfea978279ba9d764c3792d2c996ccefe5b56 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -1897,6 +1897,7 @@ _unpack_partition_info_members(partition_info_t * part, Buf buffer)
 	
 	safe_unpack32(&part->total_cpus,   buffer);
 	safe_unpack16(&part->default_part, buffer);
+	safe_unpack16(&part->disable_root_jobs, buffer);
 	safe_unpack16(&part->hidden,       buffer);
 	safe_unpack16(&part->root_only,    buffer);
 	safe_unpack16(&part->max_share,    buffer);
diff --git a/src/slurmctld/partition_mgr.c b/src/slurmctld/partition_mgr.c
index b90b66cf13594caaad29b904c39bcccf9ca077b3..ed69fb096d789a6a1cd2d2e12adfc62f39ea37b9 100644
--- a/src/slurmctld/partition_mgr.c
+++ b/src/slurmctld/partition_mgr.c
@@ -762,6 +762,7 @@ void pack_part(struct part_record *part_ptr, Buf buffer)
 	pack16(node_scaling, buffer);
 	pack32(part_ptr->total_cpus, buffer);
 	pack16(default_part_flag,    buffer);
+	pack16(part_ptr->disable_root_jobs, buffer);
 	pack16(part_ptr->hidden,     buffer);
 	pack16(part_ptr->root_only,  buffer);
 	pack16(part_ptr->max_share,  buffer);