diff --git a/src/sview/common.c b/src/sview/common.c
index 4ba2b1444e6e6f29596f7721e2d161db4c355bef..f5f2b0d0656bf6270edbc862459d67379cf98ca9 100644
--- a/src/sview/common.c
+++ b/src/sview/common.c
@@ -736,6 +736,8 @@ extern GtkTreeView *create_treeview(display_data_t *local, List *button_list)
 
 	signal_params->display_data = local;
 	signal_params->button_list = button_list;
+	if(working_sview_config.ruled_treeview)
+		gtk_tree_view_set_rules_hint (tree_view, true);
 
 	g_signal_connect(G_OBJECT(tree_view), "button-press-event",
 			 G_CALLBACK(row_clicked),
@@ -758,6 +760,9 @@ extern GtkTreeView *create_treeview_2cols_attach_to_table(GtkTable *table)
 	GtkTreeViewColumn *col = gtk_tree_view_column_new();
 	GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
 
+	if(working_sview_config.ruled_treeview)
+		gtk_tree_view_set_rules_hint (tree_view, true);
+
 	gtk_table_attach_defaults(table,
 				  GTK_WIDGET(tree_view),
 				  0, 1, 0, 1);
diff --git a/src/sview/defaults.c b/src/sview/defaults.c
index e5b23c79df975783fccb4e8483897eabf38c5002..352c494e14521a18a1616c5d3fc091770a289fbd 100644
--- a/src/sview/defaults.c
+++ b/src/sview/defaults.c
@@ -53,6 +53,7 @@ enum {
 	SORTID_GRID_X_WIDTH,
 	SORTID_PAGE_VISIBLE,
 	SORTID_REFRESH_DELAY,
+	SORTID_RULED_TV,
 	SORTID_SHOW_GRID,
 	SORTID_SHOW_HIDDEN,
 	SORTID_TAB_POS,
@@ -80,6 +81,8 @@ static display_data_t display_data_defaults[] = {
 	 TRUE, EDIT_ARRAY, NULL, create_model_defaults, NULL},
 	{G_TYPE_STRING, SORTID_REFRESH_DELAY, "Refresh Delay in Secs",
 	 TRUE, EDIT_TEXTBOX, NULL, create_model_defaults, NULL},
+	{G_TYPE_STRING, SORTID_RULED_TV, "Ruled Tables",
+	 TRUE, EDIT_MODEL, NULL, create_model_defaults, NULL},
 	{G_TYPE_STRING, SORTID_SHOW_GRID, "Show Grid",
 	 TRUE, EDIT_MODEL, NULL, create_model_defaults, NULL},
 	{G_TYPE_STRING, SORTID_SHOW_HIDDEN, "Show Hidden",
@@ -102,6 +105,9 @@ static void _set_active_combo_defaults(GtkComboBox *combo,
 	case SORTID_ADMIN:
 		action = sview_config->admin_mode;
 		break;
+	case SORTID_RULED_TV:
+		action = sview_config->ruled_treeview;
+		break;
 	case SORTID_SHOW_GRID:
 		action = sview_config->show_grid;
 		break;
@@ -189,6 +195,13 @@ static const char *_set_sview_config(sview_config_t *sview_config,
 			goto return_error;
 		sview_config->refresh_delay = temp_int;
 		break;
+	case SORTID_RULED_TV:
+		type = "Ruled Tables";
+		if (!strcasecmp(new_text, "yes"))
+			sview_config->ruled_treeview = 1;
+		else
+			sview_config->ruled_treeview = 0;
+		break;
 	case SORTID_SHOW_GRID:
 		type = "Show Grid";
 		if (!strcasecmp(new_text, "yes"))
@@ -453,6 +466,7 @@ static void _init_sview_conf()
 	default_sview_config.show_hidden = 0;
 	default_sview_config.admin_mode = FALSE;
 	default_sview_config.grid_speedup = 0;
+	default_sview_config.ruled_treeview = FALSE;
 	default_sview_config.show_grid = TRUE;
 	default_sview_config.default_page = JOB_PAGE;
 	default_sview_config.tab_pos = GTK_POS_TOP;
@@ -478,6 +492,7 @@ extern int load_defaults()
 		{"GridVertical", S_P_UINT32},
 		{"GridXWidth", S_P_UINT32},
 		{"RefreshDelay", S_P_UINT16},
+		{"RuledTables", S_P_BOOLEAN},
 		{"ShowGrid", S_P_BOOLEAN},
 		{"ShowHidden", S_P_BOOLEAN},
 		{"TabPosition", S_P_STRING},
@@ -537,6 +552,8 @@ extern int load_defaults()
 		       "GridXWidth", hashtbl);
 	s_p_get_uint16(&default_sview_config.refresh_delay,
 		       "RefreshDelay", hashtbl);
+	s_p_get_boolean(&default_sview_config.ruled_treeview,
+			"RuledTables", hashtbl);
 	s_p_get_boolean(&default_sview_config.show_grid,
 			"ShowGrid", hashtbl);
 	s_p_get_boolean(&default_sview_config.show_hidden,
@@ -650,6 +667,13 @@ extern int save_defaults()
 				 default_sview_config.refresh_delay);
 	rc = _write_to_file(fd, tmp_str);
 	xfree(tmp_str);
+	if(rc != SLURM_SUCCESS)
+		goto end_it;
+	tmp_str = xstrdup_printf("RuledTables=%s\n",
+				 default_sview_config.ruled_treeview ?
+				 "YES" : "NO");
+	rc = _write_to_file(fd, tmp_str);
+	xfree(tmp_str);
 	if(rc != SLURM_SUCCESS)
 		goto end_it;
 	tmp_str = xstrdup_printf("ShowGrid=%s\n",
@@ -708,6 +732,7 @@ extern GtkListStore *create_model_defaults(int type)
 
 	switch(type) {
 	case SORTID_ADMIN:
+	case SORTID_RULED_TV:
 	case SORTID_SHOW_GRID:
 	case SORTID_SHOW_HIDDEN:
 		model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
@@ -853,6 +878,16 @@ extern int configure_defaults()
 			tmp_char_ptr = g_strdup_printf(
 				"No change detected.");
 		else {
+			if(tmp_config.ruled_treeview
+			   != working_sview_config.ruled_treeview) {
+				/* get rid of each existing table */
+				cluster_change_block();
+				cluster_change_resv();
+				cluster_change_part();
+				cluster_change_job();
+				cluster_change_node();
+			}
+
 			memcpy(&default_sview_config, &tmp_config,
 			       sizeof(sview_config_t));
 			memcpy(&working_sview_config, &tmp_config,
@@ -861,6 +896,9 @@ extern int configure_defaults()
 			gtk_toggle_action_set_active(
 				default_sview_config.action_admin,
 				working_sview_config.admin_mode);
+			gtk_toggle_action_set_active(
+				default_sview_config.action_ruled,
+				working_sview_config.ruled_treeview);
 			gtk_toggle_action_set_active(
 				default_sview_config.action_grid,
 				working_sview_config.show_grid);
@@ -870,9 +908,7 @@ extern int configure_defaults()
 			sview_radio_action_set_current_value(
 				default_sview_config.action_tab,
 				working_sview_config.tab_pos);
-			gtk_notebook_set_current_page(
-				GTK_NOTEBOOK(main_notebook),
-				working_sview_config.default_page);
+
 			for(i=0; i<PAGE_CNT; i++) {
 				if(main_display_data[i].id == -1)
 					break;
diff --git a/src/sview/sview.c b/src/sview/sview.c
index ecb28d04e4dc104c2d6edfcda6efc1763d47a349..a31d50b3f34521dbb12d59a287c99829e1eb0623 100644
--- a/src/sview/sview.c
+++ b/src/sview/sview.c
@@ -350,6 +350,32 @@ static void _set_hidden(GtkToggleAction *action)
 	return;
 }
 
+static void _set_ruled(GtkToggleAction *action)
+{
+	char *tmp;
+	if(action)
+		working_sview_config.ruled_treeview
+			= gtk_toggle_action_get_active(action);
+	if(!working_sview_config.ruled_treeview)
+		tmp = g_strdup_printf(
+			"Tables not ruled");
+	else
+		tmp = g_strdup_printf(
+			"Tables ruled");
+
+	/* get rid of each existing table */
+	cluster_change_block();
+	cluster_change_resv();
+	cluster_change_part();
+	cluster_change_job();
+	cluster_change_node();
+	
+	refresh_main(NULL, NULL);
+	display_edit_note(tmp);
+	g_free(tmp);
+	return;
+}
+
 static void _reconfigure(GtkToggleAction *action)
 {
 	char *temp = NULL;
@@ -503,7 +529,8 @@ static char *_get_ui_description()
 		"    </menu>"
 		"    <menu action='options'>"
 		"      <menuitem action='grid'/>"
-		"      <menuitem action='hidden'/>");
+		"      <menuitem action='hidden'/>"
+		"      <menuitem action='ruled'/>");
 	if(!(cluster_flags & CLUSTER_FLAG_BG))
 		xstrcat(ui_description,
 			"      <menuitem action='grid_specs'/>");
@@ -654,6 +681,9 @@ static GtkWidget *_get_menubar_menu(GtkWidget *window, GtkWidget *notebook)
 		{"hidden", GTK_STOCK_SELECT_COLOR, "Show _Hidden",
 		 "<control>h", "Display Hidden Partitions/Jobs",
 		 G_CALLBACK(_set_hidden), working_sview_config.show_hidden},
+		{"ruled", GTK_STOCK_SELECT_COLOR, "R_uled Tables",
+		 "<control>u", "Have ruled tables or not",
+		 G_CALLBACK(_set_ruled), working_sview_config.ruled_treeview},
 		{"admin", GTK_STOCK_PREFERENCES,
 		 "_Admin Mode", "<control>a",
 		 "Allows user to change or update information",
@@ -739,6 +769,9 @@ static GtkWidget *_get_menubar_menu(GtkWidget *window, GtkWidget *notebook)
 	default_sview_config.action_hidden =
 		(GtkToggleAction *)gtk_action_group_get_action(
 			menu_action_group, "hidden");
+	default_sview_config.action_ruled =
+		(GtkToggleAction *)gtk_action_group_get_action(
+			menu_action_group, "ruled");
 	/* Pick the first one of the Radio, it is how GTK references
 	   the group in the future.
 	*/
diff --git a/src/sview/sview.h b/src/sview/sview.h
index 29669c8328605c92bb98bf0b21f55228102142da..be5ec09f4247df1563f66fe1051a44cec2dddc74 100644
--- a/src/sview/sview.h
+++ b/src/sview/sview.h
@@ -164,9 +164,11 @@ typedef struct {
 	uint16_t refresh_delay;
 	bool show_grid;
 	bool show_hidden;
+	bool ruled_treeview;
 	GtkToggleAction *action_admin;
 	GtkToggleAction *action_grid;
 	GtkToggleAction *action_hidden;
+	GtkToggleAction *action_ruled;
 	GtkRadioAction *action_tab;
 	uint16_t tab_pos;
 } sview_config_t;