diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 3290bce938980e1fe5b83bc2cc3dd8c36ec75d69..df92f26e74a382672776c97d91c57c0ef5fcdfdc 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -1786,14 +1786,9 @@ BOOL LLTextEditor::handleSpecialKey(const KEY key, const MASK mask)
 		}
 		else if (mask == MASK_SHIFT)
 		{
-			if( mCursorPos > 0 )
 			{
-				const LLWString& text = getWText();
-				if( '\n' != text[ mCursorPos - 1 ] )
-				{
-					addLineBreakChar();
-					handled = TRUE;
-				}
+				addLineBreakChar();
+				handled = TRUE;
 			}
 		}
 		else
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index bd87170a7737141ca4158bcf9e82bfdda8b5fda0..4ca479fbc1d6e8b8dd9df0f527b0fd7bb9b9e9ec 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -3359,7 +3359,7 @@ BOOL LLViewerWindow::handleUnicodeChar(llwchar uni_char, MASK mask)
 	// until all keystrokes have been entered. JC
 	// HACK: Numeric keypad <enter> on Mac is Unicode 3
 	// HACK: Control-M on Windows is Unicode 13
-	if ((uni_char == 13 && mask != MASK_CONTROL)
+	if ((uni_char == 13 && mask != MASK_CONTROL && mask != MASK_SHIFT)
 	    || (uni_char == 3 && mask == MASK_NONE) )
 	{
 		if (mask != MASK_ALT)