diff -r 9c0506d10226 indra/llui/lltextbase.cpp --- a/indra/llui/lltextbase.cpp Mon Apr 18 09:19:05 2011 -0400 +++ b/indra/llui/lltextbase.cpp Wed Apr 20 01:03:05 2011 +0300 @@ -2022,11 +2022,10 @@ pos = segment_line_start + offset; break; } - else if (hit_past_end_of_line && segmentp->getEnd() > line_iter->mDocIndexEnd - 1) + else if (hit_past_end_of_line && segmentp->getEnd() >= line_iter->mDocIndexEnd) { // segment wraps to next line, so just set doc pos to the end of the line - // segment wraps to next line, so just set doc pos to start of next line (represented by mDocIndexEnd) - pos = llmin(getLength(), line_iter->mDocIndexEnd); + pos = llclamp(line_iter->mDocIndexEnd - 1, 0, getLength()); break; } start_x += text_width;