diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 4f875cca20592113a0c3dc2cf9d3afe1fd6507fb..82d3fe74c00ef264b317f2d2aa69c536f07b8ba7 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -267,6 +267,23 @@ BOOL LLConversationViewSession::handleMouseDown( S32 x, S32 y, MASK mask )
     //This node (conversation) was selected and a child (participant) was not
     if(result && getRoot())
     {
+
+		if(getRoot()->getCurSelectedItem() == this)
+		{
+			LLConversationItem* item = dynamic_cast<LLConversationItem *>(getViewModelItem());
+			LLUUID session_id = item? item->getUUID() : LLUUID();
+
+			LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
+			if (im_container->isConversationsPaneCollapsed() && im_container->getSelectedSession() == session_id)
+			{
+				im_container->collapseMessagesPane(!im_container->isMessagesPaneCollapsed());
+			}
+			else
+			{
+				im_container->collapseMessagesPane(false);
+			}
+
+		}
 		selectConversationItem();
     }
 
@@ -316,14 +333,6 @@ void LLConversationViewSession::selectConversationItem()
 		LLUUID session_id = item? item->getUUID() : LLUUID();
 
 		LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");
-		if (im_container->isConversationsPaneCollapsed() && im_container->getSelectedSession() == session_id)
-		{
-			im_container->collapseMessagesPane(!im_container->isMessagesPaneCollapsed());
-		}
-		else
-		{
-			im_container->collapseMessagesPane(false);
-		}
 		im_container->flashConversationItemWidget(session_id,false);
 		im_container->selectConversationPair(session_id, false);
 	}