diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 295dd2ae6d33f50c0c75c70728d19ab507c0a3e3..53392ac3729522cd5ee61cbd6bd95ba3a71ae14a 100755
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -240,7 +240,7 @@ void LLConversationViewSession::toggleOpen()
 		{
 			getParentFolder()->setSelection(this, true);
 		}
-
+		mContainer->reSelectConversation();
 	}
 }
 
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 2707e3dcbb64836174228cc557eed1be7aede579..962e9f4df66ba6808dfcd36b8939657f5e06e5e5 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -334,7 +334,7 @@ void LLFloaterIMContainer::onExpandCollapseButtonClicked()
 	{
 		collapseConversationsPane(!mConversationsPane->isCollapsed());
 	}
-	selectConversation(mSelectedSession);
+	reSelectConversation();
 }
 
 LLFloaterIMContainer* LLFloaterIMContainer::findInstance()
@@ -1574,4 +1574,14 @@ void LLFloaterIMContainer::onNearbyChatClosed()
 		closeFloater();
 }
 
+void LLFloaterIMContainer::reSelectConversation()
+{
+	LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::getConversation(mSelectedSession);
+	if (session_floater->getHost())
+	{
+		selectFloater(session_floater);
+	}
+
+}
+
 // EOF
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index e60576a50d1ab1af8a87fa9cd6e9cf7a75332ea8..ad1f0039e9b7f8d71d8bf8a62e9e0558ad43dfc5 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -163,6 +163,7 @@ class LLFloaterIMContainer
 	LLConversationItem* addConversationListItem(const LLUUID& uuid, bool isWidgetSelected = false);
 	void setTimeNow(const LLUUID& session_id, const LLUUID& participant_id);
 	void setNearbyDistances();
+	void reSelectConversation();
 
 private:
 	LLConversationViewSession* createConversationItemWidget(LLConversationItem* item);