diff --git a/NEWS b/NEWS
index 34877ed97b89aecd752e0477adc17a1b7cc80715..a91dcc19410047de4639feed2f0cce819c01fc34 100644
--- a/NEWS
+++ b/NEWS
@@ -100,6 +100,10 @@ documents those changes that are of interest to users and admins.
  -- Some infrastructure added for task launch controls (slurm.conf:
     TaskProlog, TaskEpilog, TaskPlugin; srun --task-prolog, --task-epilog).
 
+* Changes in SLURM 0.6.11
+=========================
+ -- Fix bug in sinfo partition sorting order.
+
 * Changes in SLURM 0.6.10
 =========================
  -- Fix for slurmd job termination logic (could hang in COMPLETING state).
diff --git a/src/sinfo/sinfo.c b/src/sinfo/sinfo.c
index 7770e1ff0f3b41dc2f7b9241be2d6dfc7b0e5619..d7d93810d014948533fb614316bb6ed514ba5f10 100644
--- a/src/sinfo/sinfo.c
+++ b/src/sinfo/sinfo.c
@@ -579,10 +579,10 @@ static void _create_sinfo(List sinfo_list, partition_info_t* part_ptr,
 		sinfo_ptr->reason   = node_ptr->reason;
 
 		sinfo_ptr->nodes = hostlist_create(node_ptr->name);
-
 		sinfo_ptr->part_inx = part_inx;
 	} else {
 		sinfo_ptr->nodes = hostlist_create("");
+		sinfo_ptr->part_inx = part_inx;
 	}
 
 	list_append(sinfo_list, sinfo_ptr);
diff --git a/src/sinfo/sort.c b/src/sinfo/sort.c
index 530781c610ecd3b75ee3fc70171712080e31cfc1..b90faf3fcf9a704296e42d6f1a48fe9acd4de12f 100644
--- a/src/sinfo/sort.c
+++ b/src/sinfo/sort.c
@@ -348,7 +348,7 @@ static int _sort_by_partition(void *void1, void *void2)
 	char *val1 = "", *val2 = "";
 
 	if (part_order) {
-		diff = sinfo1->part_inx - sinfo2->part_inx;
+		diff = (int)sinfo1->part_inx - (int)sinfo2->part_inx;
 	} else {
 		if (sinfo1->part_info && sinfo1->part_info->name)
 			val1 = sinfo1->part_info->name;
@@ -422,7 +422,7 @@ static int _sort_by_state(void *void1, void *void2)
 	sinfo_data_t *sinfo1 = (sinfo_data_t *) void1;
 	sinfo_data_t *sinfo2 = (sinfo_data_t *) void2;
 
-	diff = sinfo1->node_state - sinfo2->node_state;
+	diff = (int)sinfo1->node_state - (int)sinfo2->node_state;
 
 	if (reverse_order)
 		diff = -diff;