diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 6cff933de6718cdd0a4441879a27c25693b31075..e237cb7f9eaf316c0f3827b4192670e6b2e628b2 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -174,6 +174,7 @@ void on_new_message(const LLSD& msg)
     // determine state of conversations floater
     enum {CLOSED, NOT_ON_TOP, ON_TOP, ON_TOP_AND_ITEM_IS_SELECTED} conversations_floater_status;
 
+
     LLFloaterIMContainer* im_box = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
 	LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(session_id);
 
@@ -186,13 +187,13 @@ void on_new_message(const LLSD& msg)
 	{
 		conversations_floater_status = NOT_ON_TOP;
 	}
-	else if (session_floater->hasFocus())
+	else if ((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id))
 	{
-		conversations_floater_status = ON_TOP;
+		conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
     }
-	else if((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id))
+	else
 	{
-		conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
+		conversations_floater_status = ON_TOP;
 	}
 
     //  determine user prefs for this session