diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 997aed4277ce2977832223729e64e3da45a43940..8a6935b71bf91d9b9767c6540de1d099c2221d5d 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -187,8 +187,18 @@ void LLNearbyChatToastPanel::init(LLSD& notification)
 			msg_text->setText(mFromName, style_params);
 		}
 		mText = mText.substr(3);
-		style_params.font.style = "UNDERLINE";
+		style_params.font.style = "ITALIC";
+#define INFINITE_REFLOW_BUG 0
+#if INFINITE_REFLOW_BUG
+		// This causes LLTextBase::reflow() to infinite loop until the viewer
+		// runs out of memory, throws a bad_alloc exception from std::vector
+		// in mLineInfoList, and the main loop catches it and continues.
+		// It appears to be caused by addText() adding a line separator in the
+		// middle of a line.  See EXT-2579, EXT-1949
 		msg_text->addText(mText,style_params);
+#else
+		msg_text->appendText(mText, FALSE, style_params);
+#endif
 	}
 	else 
 	{
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index bfac35d866fc2f996c9d07a502424c551402f4a1..1f8054379100fc78a4aa60c40e7f1b891484aa15 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -495,12 +495,12 @@ void LLIMFloater::updateMessages()
 				if (from.size() > 0)
 				{
 					append_style_params.font.style = "ITALIC";
-					chat.mText = from + " ";
+					chat.mText = from;
 					mChatHistory->appendWidgetMessage(chat, append_style_params);
 				}
 				
 				message = message.substr(3);
-				append_style_params.font.style = "UNDERLINE";
+				append_style_params.font.style = "ITALIC";
 				mChatHistory->appendText(message, FALSE, append_style_params);
 			}
 			else
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 16a47890c3ba878facfbba1b3d1e368735f3dab2..1f984e3af87cd6a2a6137e19a04bd2c5fee8c67b 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -177,7 +177,7 @@ void	LLNearbyChat::addMessage(const LLChat& chat)
 			}
 			
 			message = message.substr(3);
-			append_style_params.font.style = "UNDERLINE";
+			append_style_params.font.style = "ITALIC";
 			mChatHistory->appendText(message, FALSE, append_style_params);
 		}
 		else
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index d2cc6d07260bbaba566cffbdd44f270c2dd40866..9040bdb41ab41f9c75fc9c7ac6cf5090340e46c6 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -64,7 +64,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) :	LLToastPanel(p.notif
 		style_params.font.style ="ITALIC";
 		mMessage->appendText(p.from + " ", FALSE, style_params);
 
-		style_params.font.style = "UNDERLINE";
+		style_params.font.style = "ITALIC";
 		mMessage->appendText(p.message.substr(3), FALSE, style_params);
 	}
 	else