--- gtk_ardour/editor.cc	2004-07-05 13:25:17.000000000 -0500
+++ ../ardour.new/gtk_ardour/editor.cc	2004-07-14 14:52:57.000000000 -0500
@@ -259,6 +259,7 @@
 
  	  editor_mixer_button (_("editor\nmixer")),
 
+
 	  selection_start_clock (X_("SelectionStartClock"), true),
 	  selection_end_clock (X_("SelectionEndClock"), true),
 	  edit_cursor_clock (X_("EditCursorClock"), false),
@@ -3001,6 +3002,10 @@
 
 //	toolbar_clock_vbox.set_spacing (2);
 //	toolbar_clock_vbox.set_border_width (10);
+	/* the editor/mixer button will be enabled at session connect */
+
+	editor_mixer_button.set_active(false);
+	editor_mixer_button.set_sensitive(false);
 
 	HBox* hbox = new HBox;
 
--- gtk_ardour/editor_mixer.cc	2004-06-28 12:31:43.000000000 -0500
+++ ../ardour.new/gtk_ardour/editor_mixer.cc	2004-07-14 11:15:51.000000000 -0500
@@ -247,7 +247,11 @@
 	selection_end_clock.set_session (0);
 	zoom_range_clock.set_session (0);
 	nudge_clock.set_session (0);
-	
+
+	/* put editor/mixer toggle button in off position and disable until a new session is loaded */
+
+	editor_mixer_button.set_active(false);
+	editor_mixer_button.set_sensitive(false);
 	/* clear tempo/meter rulers */
 
 	remove_metric_marks ();
--- gtk_ardour/editor_route_list.cc	2004-06-26 19:28:34.000000000 -0500
+++ ../ardour.new/gtk_ardour/editor_route_list.cc	2004-07-14 11:15:51.000000000 -0500
@@ -76,6 +76,9 @@
 	route.gui_changed.connect (slot (*this, &Editor::handle_gui_changes));
 
 	tv->GoingAway.connect (bind (slot (*this, &Editor::remove_route), tv));
+	
+	editor_mixer_button.set_sensitive(true);
+	
 }
 
 void
@@ -102,6 +105,16 @@
 			break;
 		}
 	}
+	/* since the editor mixer goes away when you remove a route, set the
+	 * button to inacttive 
+	 */
+	editor_mixer_button.set_active(false);
+
+	/* and disable if all tracks and/or routes are gone */
+
+	if (track_views.size() == 0) {
+		editor_mixer_button.set_sensitive(false);
+	}
 }
 
 void
