diff --git a/doc/contributions.txt b/doc/contributions.txt
index ea9ccd576e1ca44edf684aae9130e1a259945187..a3214d4c3317575364ec939ec7a0e39f7d767f03 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -590,6 +590,7 @@ Jonathan Yap
 	STORM-1659
 	STORM-1674
 	STORM-1685
+	STORM-1712
 	STORM-1728
 Kadah Coba
 	STORM-1060
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index fb1153980aa3dae6893ba454f693713832ac90bc..5c95e805ce9d9c3e7664b5810c56a849da86bcce 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -468,7 +468,7 @@ void LLParticipantList::setValidateSpeakerCallback(validate_speaker_callback_t c
 
 void LLParticipantList::updateRecentSpeakersOrder()
 {
-	if (E_SORT_BY_RECENT_SPEAKERS == getSortOrder())
+	if (E_SORT_BY_RECENT_SPEAKERS == getSortOrder() && !isHovered())
 	{
 		// Need to update speakers to sort list correctly
 		mSpeakerMgr->update(true);
@@ -477,6 +477,13 @@ void LLParticipantList::updateRecentSpeakersOrder()
 	}
 }
 
+bool LLParticipantList::isHovered()
+{
+	S32 x, y;
+	LLUI::getMousePositionScreen(&x, &y);
+	return mAvatarList->calcScreenRect().pointInRect(x, y);
+}
+
 bool LLParticipantList::onAddItemEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata)
 {
 	LLUUID uu_id = event->getValue().asUUID();
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index e0b3d42c25d9229a21f44aa5e4e22323f9a7370a..a001d29b671553ec3666047d5461659f99df9eb4 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -251,6 +251,8 @@ class LLParticipantList
 	 */
 	void adjustParticipant(const LLUUID& speaker_id);
 
+	bool isHovered();
+
 	LLSpeakerMgr*		mSpeakerMgr;
 	LLAvatarList*		mAvatarList;