Index: gtk2_ardour/ardour_ui.h
===================================================================
--- gtk2_ardour/ardour_ui.h	(revision 2300)
+++ gtk2_ardour/ardour_ui.h	(working copy)
@@ -691,6 +691,7 @@
 	void toggle_GainReduceFastTransport();
 	void toggle_LatchedSolo();
 	void toggle_ShowSoloMutes();
+	void toggle_SoloMuteOverride();
 	void toggle_LatchedRecordEnable ();
 	void toggle_RegionEquivalentsOverlap ();
 	void toggle_PrimaryClockDeltaEditCursor ();
Index: gtk2_ardour/ardour.menus
===================================================================
--- gtk2_ardour/ardour.menus	(revision 2300)
+++ gtk2_ardour/ardour.menus	(working copy)
@@ -324,6 +324,7 @@
                    <menuitem action='SoloInPlace'/>
                    <menuitem action='SoloViaBus'/>
                    <menuitem action='ShowSoloMutes'/>
+                   <menuitem action='SoloMuteOverride'/>
                </menu>
 	       <menu action='Crossfades'>
 		   <menuitem action='toggle-xfades-active'/>
Index: gtk2_ardour/ardour_ui_ed.cc
===================================================================
--- gtk2_ardour/ardour_ui_ed.cc	(revision 2300)
+++ gtk2_ardour/ardour_ui_ed.cc	(working copy)
@@ -450,6 +450,8 @@
 	ActionManager::session_sensitive_actions.push_back (act);
 	act = ActionManager::register_toggle_action (option_actions, X_("ShowSoloMutes"), _("Show solo muting"), mem_fun (*this, &ARDOUR_UI::toggle_ShowSoloMutes));
 	ActionManager::session_sensitive_actions.push_back (act);
+	act = ActionManager::register_toggle_action (option_actions, X_("SoloMuteOverride"), _("Override muting"), mem_fun (*this, &ARDOUR_UI::toggle_SoloMuteOverride));
+	ActionManager::session_sensitive_actions.push_back (act);
 
 	/* !!! REMEMBER THAT RADIO ACTIONS HAVE TO BE HANDLED WITH MORE FINESSE THAN SIMPLE TOGGLES !!! */
 
Index: gtk2_ardour/ardour_ui_options.cc
===================================================================
--- gtk2_ardour/ardour_ui_options.cc	(revision 2300)
+++ gtk2_ardour/ardour_ui_options.cc	(working copy)
@@ -483,6 +483,12 @@
 }
 
 void
+ARDOUR_UI::toggle_SoloMuteOverride()
+{
+	ActionManager::toggle_config_state ("options", "SoloMuteOverride", &Configuration::set_solo_mute_override, &Configuration::get_solo_mute_override);
+}
+
+void
 ARDOUR_UI::toggle_PrimaryClockDeltaEditCursor()
 {
 	ActionManager::toggle_config_state ("options", "PrimaryClockDeltaEditCursor", &Configuration::set_primary_clock_delta_edit_cursor, &Configuration::get_primary_clock_delta_edit_cursor);
@@ -969,6 +975,8 @@
 		ActionManager::map_some_state ("options", "LatchedSolo", &Configuration::get_solo_latched);
 	} else if (PARAM_IS ("show-solo-mutes")) {
 		ActionManager::map_some_state ("options", "ShowSoloMutes", &Configuration::get_show_solo_mutes);
+	} else if (PARAM_IS ("solo-mute-override")) {
+		ActionManager::map_some_state ("options", "SoloMuteOverride", &Configuration::get_solo_mute_override);
 	} else if (PARAM_IS ("solo-model")) {
 		map_solo_model ();
 	} else if (PARAM_IS ("auto-play")) {

Index: libs/ardour/route.cc
===================================================================
--- libs/ardour/route.cc	(revision 2300)
+++ libs/ardour/route.cc	(working copy)
@@ -769,7 +769,12 @@
 		_soloed = yn;
 		solo_changed (src); /* EMIT SIGNAL */
 		_solo_control.Changed (); /* EMIT SIGNAL */
-	}
+	}	
+	
+	if (_muted && Config->get_solo_mute_override()) {
+		Glib::Mutex::Lock lm (declick_lock);
+		desired_mute_gain = (yn?1.0:0.0);
+	}	
 }
 
 void
@@ -808,7 +813,13 @@
 		_mute_control.Changed (); /* EMIT SIGNAL */
 		
 		Glib::Mutex::Lock lm (declick_lock);
-		desired_mute_gain = (yn?0.0f:1.0f);
+		
+		if (_soloed && Config->get_solo_mute_override()){
+			desired_mute_gain = 1.0f;
+		}
+		else {
+			desired_mute_gain = (yn?0.0f:1.0f);
+		}
 	}
 }
 
Index: libs/ardour/ardour/configuration_vars.h
===================================================================
--- libs/ardour/ardour/configuration_vars.h	(revision 2300)
+++ libs/ardour/ardour/configuration_vars.h	(working copy)
@@ -85,6 +85,7 @@
 CONFIG_VARIABLE (bool, latched_record_enable, "latched-record-enable", false)
 CONFIG_VARIABLE (bool, all_safe, "all-safe", false)
 CONFIG_VARIABLE (bool, show_solo_mutes, "show-solo-mutes", false)
+CONFIG_VARIABLE (bool, solo_mute_override, "solo-mute-override", false)
 
 /* click */
