diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index 80477c1041b7f7f9d39689d197130651b02c933c..47e519df8dbb6bd05d96941882f772a1435ce136 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -279,34 +279,19 @@ void LLOutputMonitorCtrl::onChange()
 // virtual
 void LLOutputMonitorCtrl::switchIndicator(bool switch_on)
 {
-	if (switch_on)
+	setVisible(TRUE);
+
+	if (getParent() && getParent()->isInVisibleChain())
 	{
+		LL_DEBUGS("SpeakingIndicator") << "Indicator is in visible chain, notifying parent: " << mSpeakerId << LL_ENDL;
 		setVisible((BOOL)switch_on);
-		if (getParent() && getParent()->isInVisibleChain())
-		{
-			notifyParentVisibilityChanged();
-		}
-		else
-		{
-			LL_DEBUGS("SpeakingIndicator") << "Indicator is not in visible chain, parent won't be notified: " << mSpeakerId << LL_ENDL;
-			mIsSwitchDirty = true;
-			mShouldSwitchOn = true;
-		}
+		notifyParentVisibilityChanged();
 	}
 	else
 	{
-		if (getParent() && getParent()->isInVisibleChain())
-		{
-			LL_DEBUGS("SpeakingIndicator") << "Indicator is in visible chain, notifying parent: " << mSpeakerId << LL_ENDL;
-			setVisible((BOOL)switch_on);
-			notifyParentVisibilityChanged();
-		}
-		else
-		{
-			LL_DEBUGS("SpeakingIndicator") << "Indicator is not in visible chain, parent won't be notified: " << mSpeakerId << LL_ENDL;
-			mIsSwitchDirty = true;
-			mShouldSwitchOn = false;
-		}
+		LL_DEBUGS("SpeakingIndicator") << "Indicator is not in visible chain, parent won't be notified: " << mSpeakerId << LL_ENDL;
+		mIsSwitchDirty = true;
+		mShouldSwitchOn = switch_on;
 	}
 }