diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index 5e10f60aba0b972a938bd5f46cc32054476cd8bc..5501b8c2ac24639da7e1b1a55fe84b992e9e57f8 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -123,10 +123,7 @@ void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL calle
 {
 	LLTextEditor::reshape(width, height, called_from_parent);
 
-	if (getTextPixelHeight() > getRect().getHeight())
-	{
-		showExpandText();
-	}
+	hideOrShowExpandTextAsNeeded();
 }
 
 void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text,const LLStyle::Params& input_params)
@@ -136,17 +133,7 @@ void LLExpandableTextBox::LLTextBoxEx::setText(const LLStringExplicit& text,cons
 	mExpanderVisible = false;
 	LLTextEditor::setText(text, input_params);
 
-	// text contents have changed, segments are cleared out
-	// so hide the expander and determine if we need it
-	//mExpanderVisible = false;
-	if (getTextPixelHeight() > getRect().getHeight())
-	{
-		showExpandText();
-	}
-	else
-	{
-		hideExpandText();
-	}
+	hideOrShowExpandTextAsNeeded();
 }
 
 
@@ -200,6 +187,22 @@ S32 LLExpandableTextBox::LLTextBoxEx::getTextPixelHeight()
 	return getTextBoundingRect().getHeight();
 }
 
+void LLExpandableTextBox::LLTextBoxEx::hideOrShowExpandTextAsNeeded()
+{
+	// Restore the text box contents to calculate the text height properly,
+	// otherwise if a part of the text is hidden under "More" link
+	// getTextPixelHeight() returns only the height of currently visible text
+	// including the "More" link. See STORM-250.
+	hideExpandText();
+
+	// Show the expander a.k.a. "More" link if we need it, depending on text
+	// contents height. If not, keep it hidden.
+	if (getTextPixelHeight() > getRect().getHeight())
+	{
+		showExpandText();
+	}
+}
+
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h
index bce77225c4863d583058b574d46f5431b2cf19a9..f75ef954ffa6210f9f1cf6bcb8c679dd17f64e76 100644
--- a/indra/newview/llexpandabletextbox.h
+++ b/indra/newview/llexpandabletextbox.h
@@ -77,6 +77,12 @@ class LLExpandableTextBox : public LLUICtrl
 		 */
 		void hideExpandText();
 
+		/**
+		 * Shows the "More" link if the text is too high to be completely
+		 * visible without expanding the text box. Hides that link otherwise.
+		 */
+		void hideOrShowExpandTextAsNeeded();
+
 	protected:
 
 		LLTextBoxEx(const Params& p);