diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 20bea7fe243df33586a94f872862111a0b7dd09d..ea2d357d5da3d8775901fe875477174edab5546b 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1558,11 +1558,14 @@ void LLTextBase::reflow()
 		{
 			// find first element whose end comes after start_index
 			line_list_t::iterator iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), start_index, line_end_compare());
-			line_start_index = iter->mDocIndexStart;
-			line_count = iter->mLineNum;
-			cur_top = iter->mRect.mTop;
-			getSegmentAndOffset(iter->mDocIndexStart, &seg_iter, &seg_offset);
-			mLineInfoList.erase(iter, mLineInfoList.end());
+            if (iter != mLineInfoList.end())
+            {
+                line_start_index = iter->mDocIndexStart;
+                line_count = iter->mLineNum;
+                cur_top = iter->mRect.mTop;
+                getSegmentAndOffset(iter->mDocIndexStart, &seg_iter, &seg_offset);
+                mLineInfoList.erase(iter, mLineInfoList.end());
+            }
 		}
 
 		S32 line_height = 0;