diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 4a7d17cc62c6f8d38fe91a6c9cf7d538404502ae..e515170b0c13393211cbc49a0a1beb00a232ecdc 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1180,6 +1180,10 @@ void LLTextBase::reflow(S32 start_index)
 				++seg_iter;
 				seg_offset = 0;
 			}
+			if (force_newline) 
+			{
+				line_count++;
+			}
 		}
 
 		// calculate visible region for diplaying text
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 3f4ef24f82a85b82daaf61312fd0e13ad0d26347..0e8db09980df693c6fd3a2d213e3e510aa1c6a6f 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2158,7 +2158,7 @@ void LLTextEditor::drawLineNumbers()
 		return;
 	}
 	
-	S32 cursor_line = getLineNumFromDocIndex(mCursorPos);
+	S32 cursor_line = mLineInfoList[getLineNumFromDocIndex(mCursorPos)].mLineNum;
 
 	if (mShowLineNumbers)
 	{