diff --git a/src/sview/block_info.c b/src/sview/block_info.c
index 1429e9359bcdf3097ae3154710ecf4ee8a2a94c2..6c7a1e779dba19da2c7a56a21caa95b6a4ed45ed 100644
--- a/src/sview/block_info.c
+++ b/src/sview/block_info.c
@@ -927,7 +927,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, display_data_block, SORTID_CNT);
+		create_treestore(tree_view, display_data_block,
+				 SORTID_CNT, SORTID_BLOCK);
 	}
 	view = INFO_VIEW;
 	_update_info_block(block_list, GTK_TREE_VIEW(display_widget));
@@ -1036,8 +1037,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, 
-				 popup_win->display_data, SORTID_CNT);
+		create_treestore(tree_view, popup_win->display_data,
+				 SORTID_CNT, SORTID_BLOCK);
 	}
 
 	setup_popup_grid_list(popup_win);
diff --git a/src/sview/common.c b/src/sview/common.c
index 7fcf70955abcb7b5a897c835f948337bc3b4ccff..66fded3a1ec2a935406c70274e2ba5e3cdae3b95 100644
--- a/src/sview/common.c
+++ b/src/sview/common.c
@@ -649,7 +649,7 @@ extern GtkTreeView *create_treeview_2cols_attach_to_table(GtkTable *table)
 
 extern GtkTreeStore *create_treestore(GtkTreeView *tree_view, 
 				      display_data_t *display_data,
-				      int count)
+				      int count, int sort_column)
 {
 	GtkTreeStore *treestore = NULL;
 	GType types[count];
@@ -717,7 +717,7 @@ extern GtkTreeStore *create_treestore(GtkTreeView *tree_view,
 		}
 	}
 	gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(treestore), 
-					     1, 
+					     sort_column, 
 					     GTK_SORT_ASCENDING);
 	
 	g_object_unref(treestore);
diff --git a/src/sview/job_info.c b/src/sview/job_info.c
index 730f0cd4a7c9bbd7ad23fa83af886244a6196c22..9a61636c58d9f91a6843213d158d5881f896751a 100644
--- a/src/sview/job_info.c
+++ b/src/sview/job_info.c
@@ -370,7 +370,6 @@ static void _update_info_step(sview_job_info_t *sview_job_info_ptr,
 			      GtkTreeIter *step_iter,
 			      GtkTreeIter *iter);
 
-
 /* translate name name to number */
 static uint16_t _xlate_signal_name(const char *signal_name) 
 {
@@ -2085,10 +2084,11 @@ static void _update_info_job(List info_list,
 			}
 		}
 	}
-	
+
 	itr = list_iterator_create(info_list);
 	while ((sview_job_info = (sview_job_info_t*) list_next(itr))) {
 		job_ptr = sview_job_info->job_ptr;
+		g_print("here job %d with %d %d\n", job_ptr->job_id, job_ptr->num_procs, sview_job_info->node_cnt);
 		/* get the iter, or find out the list is empty goto add */
 		if (!gtk_tree_model_get_iter(model, &iter, path)) {
 			goto adding;
@@ -2149,16 +2149,16 @@ static int _sview_job_sort_aval_dec(sview_job_info_t* rec_a,
 	int size_a = rec_a->node_cnt;
 	int size_b = rec_b->node_cnt;
 
-	if (size_a > size_b)
+	if (size_a < size_b)
 		return -1;
-	else if (size_a < size_b)
+	else if (size_a > size_b)
 		return 1;
 
 	if(rec_a->nodes && rec_b->nodes) {
 		size_a = strcmp(rec_a->nodes, rec_b->nodes);
-		if (size_a > 0)
+		if (size_a < 0)
 			return -1;
-		else if (size_a < 0)
+		else if (size_a > 0)
 			return 1;
 	}
 	return 0;
@@ -2271,14 +2271,12 @@ static List _create_job_info_list(job_info_msg_t *job_info_ptr,
 		list_append(info_list, sview_job_info_ptr);
 	}
 
+	list_sort(info_list, (ListCmpF)_sview_job_sort_aval_dec);
 
-	list_sort(info_list,
-		  (ListCmpF)_sview_job_sort_aval_dec);
-
-	list_sort(odd_info_list,
-		  (ListCmpF)_sview_job_sort_aval_dec);
+	list_sort(odd_info_list, (ListCmpF)_sview_job_sort_aval_dec);
 
 update_color:
+
 	if(want_odd_states)
 		return odd_info_list;
 	else
@@ -2331,7 +2329,7 @@ need_refresh:
 					popup_win->grid_button_list,
 					sview_job_info->job_ptr->node_inx[j],
 					sview_job_info->job_ptr->node_inx[j+1],
-					i, false, 0);
+					i, true, 0);
 			j += 2;
 		}
 		_layout_job_record(treeview, sview_job_info, update);
@@ -2346,11 +2344,9 @@ need_refresh:
 				j=0;
 				while(step_ptr->node_inx[j] >= 0) {
 					change_grid_color(
-						popup_win->
-						grid_button_list,
+						popup_win->grid_button_list,
 						step_ptr->node_inx[j],
-						step_ptr->
-						node_inx[j+1],
+						step_ptr->node_inx[j+1],
 						i, false, 0);
 					j += 2;
 				}
@@ -2759,6 +2755,7 @@ display_it:
 	if(!info_list)
 		return;
 	i=0;
+	
 	/* set up the grid */
 	itr = list_iterator_create(info_list);
 	while ((sview_job_info_ptr = list_next(itr))) {
@@ -2769,7 +2766,7 @@ display_it:
 				change_grid_color(grid_button_list,
 						  job_ptr->node_inx[j],
 						  job_ptr->node_inx[j+1],
-						  i, false, 0);
+						  i, true, 0);
 			j += 2;
 		}
 		i++;
@@ -2795,7 +2792,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, display_data_job, SORTID_CNT);
+		create_treestore(tree_view, display_data_job,
+				 SORTID_CNT, SORTID_SUBMIT_TIME);
 	}
 
 	view = INFO_VIEW;
@@ -2906,7 +2904,7 @@ display_it:
 		   to the treestore we don't really care about 
 		   the return value */
 		create_treestore(tree_view, popup_win->display_data, 
-				 SORTID_CNT);
+				 SORTID_CNT, SORTID_SUBMIT_TIME);
 	}
 
 	setup_popup_grid_list(popup_win);
@@ -3018,7 +3016,7 @@ display_it:
 			change_grid_color(
 				popup_win->grid_button_list,
 				job_ptr->node_inx[j],
-				job_ptr->node_inx[j+1], i, false, 0);
+				job_ptr->node_inx[j+1], i, true, 0);
 			j += 2;
 		}
 	}
diff --git a/src/sview/node_info.c b/src/sview/node_info.c
index ec0effe777cf6eda3632b9f570a39ac08715a4de..ca4fbf65967a5973fcdb070782bbb1833c49c560 100644
--- a/src/sview/node_info.c
+++ b/src/sview/node_info.c
@@ -946,7 +946,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, display_data_node, SORTID_CNT);
+		create_treestore(tree_view, display_data_node,
+				 SORTID_CNT, SORTID_NAME);
 	}
 	view = INFO_VIEW;
 	_update_info_node(info_list, GTK_TREE_VIEW(display_widget));
@@ -1031,7 +1032,7 @@ display_it:
 		   to the treestore we don't really care about 
 		   the return value */
 		create_treestore(tree_view, popup_win->display_data, 
-				 SORTID_CNT);
+				 SORTID_CNT, SORTID_NAME);
 	}
 
 	spec_info->view = INFO_VIEW;
diff --git a/src/sview/part_info.c b/src/sview/part_info.c
index 3a14f709fe9d28e12ecc8d11a5567cef1a0d2a94..14c2451dd02f03c24f2557a601bb2761a555ca3a 100644
--- a/src/sview/part_info.c
+++ b/src/sview/part_info.c
@@ -1999,7 +1999,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, display_data_part, SORTID_CNT);
+		create_treestore(tree_view, display_data_part,
+				 SORTID_CNT, SORTID_NAME);
 	}
 	view = INFO_VIEW;
 	_update_info_part(info_list, GTK_TREE_VIEW(display_widget));
@@ -2131,7 +2132,7 @@ display_it:
 		   to the treestore we don't really care about 
 		   the return value */
 		create_treestore(tree_view, popup_win->display_data, 
-				 SORTID_CNT);
+				 SORTID_CNT, SORTID_NAME);
 	}
 	
 	setup_popup_grid_list(popup_win);
diff --git a/src/sview/resv_info.c b/src/sview/resv_info.c
index 640ff949c4f71b2ca23756550afd967e5a003431..fb2f76bfcde78531a0e971e71211ecfde5a3ac14 100644
--- a/src/sview/resv_info.c
+++ b/src/sview/resv_info.c
@@ -747,7 +747,7 @@ need_refresh:
 				change_grid_color(
 					popup_win->grid_button_list,
 					resv_ptr->node_inx[j],
-					resv_ptr->node_inx[j+1], i, false, 0);
+					resv_ptr->node_inx[j+1], i, true, 0);
 				j += 2;
 			}
 			_layout_resv_record(treeview, sview_resv_info, update);
@@ -1004,7 +1004,7 @@ display_it:
 				change_grid_color(grid_button_list,
 						  resv_ptr->node_inx[j],
 						  resv_ptr->node_inx[j+1],
-						  i, false, 0);
+						  i, true, 0);
 			j += 2;
 		}
 		i++;
@@ -1030,7 +1030,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, display_data_resv, SORTID_CNT);
+		create_treestore(tree_view, display_data_resv,
+				 SORTID_CNT, SORTID_START_TIME);
 	}
 	view = INFO_VIEW;
 	_update_info_resv(info_list, GTK_TREE_VIEW(display_widget));
@@ -1113,8 +1114,8 @@ display_it:
 		/* since this function sets the model of the tree_view 
 		   to the treestore we don't really care about 
 		   the return value */
-		create_treestore(tree_view, 
-				 popup_win->display_data, SORTID_CNT);
+		create_treestore(tree_view, popup_win->display_data,
+				 SORTID_CNT, SORTID_START_TIME);
 	}
 
 	setup_popup_grid_list(popup_win);
@@ -1177,7 +1178,7 @@ display_it:
 				change_grid_color(
 					popup_win->grid_button_list,
 					resv_ptr->node_inx[j],
-					resv_ptr->node_inx[j+1], i, false, 0);
+					resv_ptr->node_inx[j+1], i, true, 0);
 			j += 2;
 		}
 	}
diff --git a/src/sview/sview.c b/src/sview/sview.c
index 8afe467bc3fdca8a220d23315f23679ed06fb380..7fa6f1da8063a8fd4d6d17b02bf76933415adb57 100644
--- a/src/sview/sview.c
+++ b/src/sview/sview.c
@@ -183,7 +183,7 @@ void *_grid_init_thr(void *arg)
 	GtkTable *table = NULL;
 	int rc = SLURM_SUCCESS;
 		
-	while(!grid_init) {
+	while(!grid_init && !fini) {
 		gdk_threads_enter();
 		page = gtk_notebook_get_current_page(
 			GTK_NOTEBOOK(main_notebook));
@@ -355,10 +355,10 @@ static gboolean _delete(GtkWidget *widget,
 	fini = 1;
 	gtk_main_quit();
 	ba_fini();
-	if(grid_button_list)
-		list_destroy(grid_button_list);
 	if(popup_list)
 		list_destroy(popup_list);
+	if(grid_button_list)
+		list_destroy(grid_button_list);
 	return FALSE;
 }
 
diff --git a/src/sview/sview.h b/src/sview/sview.h
index e7739875b1c52fd3d429e11f11a58bdd7c615519..8df9979df8ecdf895e889c9370600ccb403e8326 100644
--- a/src/sview/sview.h
+++ b/src/sview/sview.h
@@ -417,7 +417,8 @@ extern void create_page(GtkNotebook *notebook, display_data_t *display_data);
 extern GtkTreeView *create_treeview(display_data_t *local);
 extern GtkTreeView *create_treeview_2cols_attach_to_table(GtkTable *table);
 extern GtkTreeStore *create_treestore(GtkTreeView *tree_view, 
-				      display_data_t *display_data, int count);
+				      display_data_t *display_data,
+				      int count, int sort_column);
 
 extern void right_button_pressed(GtkTreeView *tree_view, GtkTreePath *path, 
 				 GdkEventButton *event,