diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 14ed0b3c3e87eb71fbe82e90e4938da6f659c469..cf4d054dd5259bbde94367087678cdaa95d53e8b 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -1113,6 +1113,9 @@ void LLIMFloaterContainer::setItemSelect(const LLUUID& session_id)
             mSelectedSession = session_id;
             LLFolderViewItem* widget = mConversationsWidgets[session_id];
             (widget->getRoot())->setSelection(widget, FALSE, FALSE);
+
+			// Scroll to selected item
+			mConversationsRoot->scrollToShowSelection();
         }
     }
 }
@@ -1228,6 +1231,9 @@ void LLIMFloaterContainer::addConversationListItem(const LLUUID& uuid, bool isWi
 	// set the widget to minimized mode if conversations pane is collapsed
 	widget->toggleMinimizedMode(mConversationsPane->isCollapsed());
 
+	// scroll to newly added item
+	mConversationsRoot->scrollToShowSelection();
+
 	return;
 }
 
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index 64477765e1b57dccb2c7d87dabb95b91a097dbfb..46fd8c12904e852f1f9bdb52630c02b8ea03731f 100644
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -533,8 +533,8 @@ void LLSpeakerMgr::updateSpeakerList()
 			LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);
 			for (uuid_vec_t::iterator it = session->mInitialTargetIDs.begin();it!=session->mInitialTargetIDs.end();++it)
 			{
-				// We only add avatars that are on line
-				if (LLAvatarTracker::instance().isBuddyOnline(*it))
+				// Allow to set buddies if they are on line. Allow any other avatar.
+				if (!LLAvatarTracker::instance().isBuddy(*it) || LLAvatarTracker::instance().isBuddyOnline(*it))
 				{
 					setSpeaker(*it, "", LLSpeaker::STATUS_VOICE_ACTIVE, LLSpeaker::SPEAKER_AGENT);
 				}