diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index a08479c7be4fe48c14c5e649039123b3e7eda055..31d2c67e29a071cc4ea6f68ac0b16a1165202c4a 100644
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -162,7 +162,7 @@ void LLFloaterIMSession::newIMCallback(const LLSD& data)
 		LLFloaterIMSession* floater = LLFloaterReg::findTypedInstance<LLFloaterIMSession>("impanel", session_id);
 
         // update if visible, otherwise will be updated when opened
-		if (floater && (floater->getHost()? floater->hasFocus() : floater->getVisible()))
+		if (floater && floater->isInVisibleChain())
 		{
 			floater->updateMessages();
 		}
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index acbf5fcde4a777f7b6a6b7dbf43bddcbb802b05d..ffbb8471c2f8e8da048034c424796a5aa9422ae8 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -239,14 +239,8 @@ void on_new_message(const LLSD& msg)
                 {
                     LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));
                 }
-
-				// Make sure the message actually appears, without having to click on the conversation
-				if(!conversation_floater_is_closed)
-				{
-					im_box->selectConversation(session_id);
-				}
             }
-        }
+		}
     }
 
     else if ("flash" == action)