diff --git a/src/sview/common.c b/src/sview/common.c
index c58aa9bf8e34be69fe7dd0c4561d4d4785d4d6da..93a7075760eace886341cc4ad1ee7c80278a96ca 100644
--- a/src/sview/common.c
+++ b/src/sview/common.c
@@ -377,6 +377,7 @@ extern GtkScrolledWindow *create_scrolled_window()
 
 	return scrolled_window;
 }
+
 extern void create_page(GtkNotebook *notebook, display_data_t *display_data)
 {
 	GtkScrolledWindow *scrolled_window = create_scrolled_window();
diff --git a/src/sview/node_info.c b/src/sview/node_info.c
index 0a31475e9f671f1c5b2b5c925d564bba5c5bb4e2..ad85db0d2b37d8de5875c2789d3b5146c1708304 100644
--- a/src/sview/node_info.c
+++ b/src/sview/node_info.c
@@ -327,16 +327,12 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter,
 	if(!strcmp("drain", new_text)) {
 		state = NODE_STATE_DRAIN;
 		node_msg->reason = get_reason();
-	} else if(!strcmp("NoResp", new_text)) {
-		state = NODE_STATE_NO_RESPOND;
 	} else if(!strcmp("resume", new_text)) {
 		state = NODE_RESUME;
 	} else {
 		for(i = 0; i < NODE_STATE_END; i++) {
 			upper = node_state_string(i);
 			lower = str_tolower(upper);
-			if(!strcmp(upper, "?"))
-				break;
 			if(!strcmp(lower, new_text)) {
 				state = i;
 				xfree(lower);
@@ -349,6 +345,8 @@ extern int update_state_node(GtkTreeStore *treestore, GtkTreeIter *iter,
 	
 	rc = slurm_update_node(node_msg);
 	xfree(node_msg->reason);
+	if(rc != SLURM_SUCCESS)
+		return rc;
 	gtk_tree_store_set(treestore, iter, text_column, new_text,
 			   num_column,	state, -1);
 	return rc;
diff --git a/src/sview/part_info.c b/src/sview/part_info.c
index c190726f1580a43cb650315e0141d9f2b355c176..5f952513e9aca89be8e72744ee352dfca3dad60f 100644
--- a/src/sview/part_info.c
+++ b/src/sview/part_info.c
@@ -65,9 +65,12 @@ enum {
 	SORTID_POS = POS_LOC,
 	SORTID_NAME, 
 	SORTID_DEFAULT, 
+	SORTID_HIDDEN,
 	SORTID_AVAIL, 
 	SORTID_TIMELIMIT, 
 	SORTID_JOB_SIZE,
+	SORTID_MIN_NODES,
+	SORTID_MAX_NODES,
 	SORTID_ROOT, 
 	SORTID_SHARE, 
 	SORTID_GROUPS,
@@ -89,12 +92,19 @@ static display_data_t display_data_part[] = {
 	 create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_DEFAULT, "Default", TRUE, -1, refresh_part,
 	 create_model_part, admin_edit_part},
+	{G_TYPE_STRING, SORTID_HIDDEN, "Hidden", FALSE, -1, refresh_part,
+	 create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_AVAIL, "Availablity", TRUE, -1, refresh_part,
 	 create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_TIMELIMIT, "Time Limit", 
 	 TRUE, -1, refresh_part,
 	 create_model_part, admin_edit_part},
-	{G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part},
+	{G_TYPE_STRING, SORTID_JOB_SIZE, "Job Size", FALSE, -1, refresh_part,
+	 create_model_part, admin_edit_part},
+	{G_TYPE_INT, SORTID_MIN_NODES, "Min Nodes", FALSE, -1, refresh_part,
+	 create_model_part, admin_edit_part},
+	{G_TYPE_INT, SORTID_MAX_NODES, "Max Nodes", FALSE, -1, refresh_part,
+	 create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_ROOT, "Root", FALSE, -1, refresh_part,
 	 create_model_part, admin_edit_part},
 	{G_TYPE_STRING, SORTID_SHARE, "Share", FALSE, -1, refresh_part,
@@ -272,6 +282,9 @@ static void _update_part_record(sview_part_info_t *sview_part_info,
 	if(part_ptr->default_part)
 		gtk_tree_store_set(treestore, iter, SORTID_DEFAULT, "*", -1);
 	
+	if(part_ptr->hidden)
+		gtk_tree_store_set(treestore, iter, SORTID_HIDDEN, "*", -1);
+	
 	if (part_ptr->state_up) 
 		gtk_tree_store_set(treestore, iter, SORTID_AVAIL, "up", -1);
 	else
@@ -290,6 +303,10 @@ static void _update_part_record(sview_part_info_t *sview_part_info,
 			      part_ptr->min_nodes, 
 			      part_ptr->max_nodes, true);
 	gtk_tree_store_set(treestore, iter, SORTID_JOB_SIZE, time_buf, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_MIN_NODES, 
+			   part_ptr->min_nodes, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_MAX_NODES, 
+			   part_ptr->max_nodes, -1);
 
 	if(part_ptr->root_only)
 		gtk_tree_store_set(treestore, iter, SORTID_ROOT, "yes", -1);
@@ -358,6 +375,24 @@ static void _update_part_sub_record(sview_part_sub_t *sview_part_sub,
 	gtk_tree_store_set(treestore, iter, SORTID_STATE_NUM,
 			   sview_part_sub->node_state, -1);
 	
+	if (part_ptr->max_time == INFINITE)
+		snprintf(time_buf, sizeof(time_buf), "infinite");
+	else {
+		snprint_time(time_buf, sizeof(time_buf), 
+			     (part_ptr->max_time * 60));
+	}
+	
+	gtk_tree_store_set(treestore, iter, SORTID_TIMELIMIT, time_buf, -1);
+	
+	_build_min_max_string(time_buf, sizeof(time_buf), 
+			      part_ptr->min_nodes, 
+			      part_ptr->max_nodes, true);
+	gtk_tree_store_set(treestore, iter, SORTID_JOB_SIZE, time_buf, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_MIN_NODES, 
+			   part_ptr->min_nodes, -1);
+	gtk_tree_store_set(treestore, iter, SORTID_MAX_NODES, 
+			   part_ptr->max_nodes, -1);
+	
 	_build_min_max_string(time_buf, sizeof(time_buf), 
 			      sview_part_sub->min_cpus, 
 			      sview_part_sub->max_cpus, false);
@@ -887,45 +922,96 @@ extern GtkListStore *create_model_part(int type)
 	char *upper = NULL, *lower = NULL;		     
 	int i=0;
 	switch(type) {
-	case SORTID_AVAIL:
-		model = gtk_list_store_new(2, G_TYPE_STRING,
+	case SORTID_DEFAULT:
+		model = gtk_list_store_new(1, G_TYPE_STRING,
 					   G_TYPE_INT);
 		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "yes",
+				   -1);	
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "no",
+				   -1);	
+
+		break;
+	case SORTID_HIDDEN:
+		model = gtk_list_store_new(1, G_TYPE_STRING);
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "yes",
+				   -1);	
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "no",
+				   -1);	
+
+		break;
+	case SORTID_MIN_NODES:
+		break;
+	case SORTID_MAX_NODES:
+		break;
+	case SORTID_ROOT:
+		model = gtk_list_store_new(1, G_TYPE_STRING);
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "yes",
+				   -1);	
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "no",
+				   -1);	
+		break;
+	case SORTID_SHARE:
+		model = gtk_list_store_new(1, G_TYPE_STRING);
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "yes",
+				   -1);	
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "no",
+				   -1);	
+		gtk_list_store_append(model, &iter);
+		gtk_list_store_set(model, &iter,
+				   0, "force",
+				   -1);	
+		break;
+	case SORTID_GROUPS:
+		break;
+	case SORTID_NODELIST:
+		break;
+	case SORTID_AVAIL:
+		model = gtk_list_store_new(1, G_TYPE_STRING);
+		gtk_list_store_append(model, &iter);
 		gtk_list_store_set(model, &iter,
 				   0, "up",
-				   1, i,
 				   -1);	
 		gtk_list_store_append(model, &iter);
 		gtk_list_store_set(model, &iter,
 				   0, "down",
-				   1, i,
 				   -1);	
 		break;
 	case SORTID_STATE:
-		model = gtk_list_store_new(2, G_TYPE_STRING,
+		model = gtk_list_store_new(1, G_TYPE_STRING,
 					   G_TYPE_INT);
 		gtk_list_store_append(model, &iter);
 		gtk_list_store_set(model, &iter,
 				   0, "drain",
-				   1, i,
-				   -1);	
-		gtk_list_store_append(model, &iter);
-		gtk_list_store_set(model, &iter,
-				   0, "NoResp",
-				   1, i,
 				   -1);	
 		gtk_list_store_append(model, &iter);
 		gtk_list_store_set(model, &iter,
 				   0, "resume",
-				   1, i,
 				   -1);	
 		for(i = 0; i < NODE_STATE_END; i++) {
 			upper = node_state_string(i);
+			if(!strcmp(upper, "UNKNOWN"))
+				continue;
+			
 			gtk_list_store_append(model, &iter);
 			lower = str_tolower(upper);
 			gtk_list_store_set(model, &iter,
 					   0, lower,
-					   1, i,
 					   -1);
 			xfree(lower);
 		}
@@ -946,11 +1032,75 @@ extern void admin_edit_part(GtkCellRendererText *cell,
 	GtkTreeIter iter;
 	update_node_msg_t node_msg;
 	update_part_msg_t part_msg;
-
+	
+	char *temp = NULL;
 	int column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), 
 						       "column"));
 	gtk_tree_model_get_iter(GTK_TREE_MODEL(treestore), &iter, path);
+
+	if(column != SORTID_STATE) {
+		slurm_init_part_desc_msg(&part_msg);
+		gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, 
+				   SORTID_NAME, 
+				   &part_msg.name, -1);
+	}
+
 	switch(column) {
+	case SORTID_DEFAULT:
+		if (!strcasecmp(new_text, "yes")) {
+			part_msg.default_part = 1;
+			temp = "*";
+		} else {
+			part_msg.default_part = 0;
+			temp = "";
+		}
+		break;
+	case SORTID_HIDDEN:
+		if (!strcasecmp(new_text, "yes")) {
+			part_msg.hidden = 1;
+			temp = "*";
+		} else {
+			part_msg.hidden = 0;
+			temp = "";
+		}
+		break;
+	case SORTID_MIN_NODES:
+		if (!strcasecmp(new_text, "infinite")) {
+			part_msg.min_nodes = INFINITE;
+		} else {
+			part_msg.min_nodes = 
+				(uint32_t)strtol(new_text, (char **)NULL, 10);
+		}
+		break;
+	case SORTID_MAX_NODES:
+		if (!strcasecmp(new_text, "infinite")) {
+			part_msg.max_nodes = INFINITE;
+		} else {
+			part_msg.max_nodes = 
+				(uint32_t)strtol(new_text, (char **)NULL, 10);
+		}
+		break;
+	case SORTID_ROOT:
+		if (!strcasecmp(new_text, "yes")) {
+			part_msg.default_part = 1;
+		} else {
+			part_msg.default_part = 0;
+		}
+		temp = (char *)new_text;
+		break;
+	case SORTID_SHARE:
+		if (!strcasecmp(new_text, "yes")) {
+			part_msg.default_part = SHARED_YES;
+		} else if (!strcasecmp(new_text, "no")) {
+			part_msg.default_part = SHARED_NO;
+		} else {
+			part_msg.default_part = SHARED_FORCE;
+		}
+		break;
+	case SORTID_GROUPS:
+		break;
+	case SORTID_NODELIST:
+		break;
 	case SORTID_AVAIL:
 		slurm_init_part_desc_msg(&part_msg);
 		gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, 
@@ -960,7 +1110,7 @@ extern void admin_edit_part(GtkCellRendererText *cell,
 			part_msg.state_up = 1;
 		else
 			part_msg.state_up = 0;
-		slurm_update_partition(&part_msg);	
+		temp = (char *)new_text;
 		break;
 	case SORTID_STATE:
 		gtk_tree_model_get(GTK_TREE_MODEL(treestore), &iter, 
@@ -972,6 +1122,13 @@ extern void admin_edit_part(GtkCellRendererText *cell,
 		g_free(node_msg.node_names);
 		break;			
 	}
+
+	if(column != SORTID_STATE) {
+		if(slurm_update_partition(&part_msg) == SLURM_SUCCESS)
+			gtk_tree_store_set(treestore, &iter, column, temp, -1);
+		
+	}
+
 	gtk_tree_path_free (path);
 	
 	g_static_mutex_unlock(&sview_mutex);