diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 956abcd58692bf6c1803a925c639f8c3ec4ed7f6..b6c53e5e30f6dae92d95857597dd2826003850d9 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -120,7 +120,7 @@ void LLConversationViewSession::setFlashState(bool flash_state)
 
 void LLConversationViewSession::startFlashing()
 {
-	if (mFlashStateOn && !mFlashStarted)
+	if (isInVisibleChain() && mFlashStateOn && !mFlashStarted)
 	{
 		mFlashStarted = true;
 		mFlashTimer->startFlashing();
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 76a314f8075e0a2ce7d928d9863a546a6c441173..4171fa1235f4a1de1597983f007b3a4a7d47cce6 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -274,7 +274,9 @@ void on_new_message(const LLSD& msg)
 
     // 2. Flash line item
     if ("openconversations" == user_preferences
-    		|| ON_TOP == conversations_floater_status)
+    		|| ON_TOP == conversations_floater_status
+    		|| ("toast" == user_preferences && ON_TOP != conversations_floater_status)
+    		|| ("flash" == user_preferences && CLOSED == conversations_floater_status))
     {
     	if(!LLMuteList::getInstance()->isMuted(participant_id))
     	{