diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 977f5c2bd0338acc1bfa00dd276be83804ac8ec6..a46cd84b60876e775437a28223d8e0567e12ded6 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -609,3 +609,11 @@ void LLChatHistory::draw()
 	LLUICtrl::draw();
 }
 
+void LLChatHistory::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+	bool is_scrolled_to_end = mEditor->scrolledToEnd();
+	LLUICtrl::reshape( width, height, called_from_parent );
+	// update scroll
+	if (is_scrolled_to_end)
+		mEditor->setCursorAndScrollToEnd();
+}
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index 260015e2dc8a048b88c7e9964aca249daf8e61cc..f2d403f63932ca64572514525c757fc9333bb2de 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -119,6 +119,7 @@ class LLChatHistory : public LLUICtrl
 		 */
 		void appendMessage(const LLChat& chat, const bool use_plain_text_chat_history = false, const LLStyle::Params& input_append_params = LLStyle::Params());
 		/*virtual*/ void clear();
+		/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 
 	private:
 		std::string mLastFromName;