diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index ed03645944a395fbaaaec5a40e8a4870cc29d677..d3b2a368a5d9a9cf02dab9ed8f587a4022ab2b4c 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -2282,6 +2282,12 @@ void LLTextBase::updateRects()
 		? llmax(mVisibleTextRect.getWidth(), mTextBoundingRect.mRight)
 		: mVisibleTextRect.getWidth();
 
+	if (!mScroller)
+	{
+		// push doc rect to top of text widget
+		doc_rect.translate(0, mVisibleTextRect.getHeight() - doc_rect.mTop);
+	}
+
 	mDocumentView->setShape(doc_rect);
 
 	//update mVisibleTextRect *after* mDocumentView has been resized
@@ -2786,9 +2792,9 @@ F32	LLLineBreakTextSegment::draw(S32 start, S32 end, S32 selection_start, S32 se
 }
 
 LLImageTextSegment::LLImageTextSegment(LLStyleConstSP style,S32 pos,class LLTextBase& editor)
-	:LLTextSegment(pos,pos+1)
-	,mStyle( style )
-	,mEditor(editor)
+:	LLTextSegment(pos,pos+1),
+	mStyle( style ),
+	mEditor(editor)
 {
 }
 
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 682e3eb87451522ca156a4d379c9c0b958c288d6..d8b2866a9f4140bc64af9064298bf9401189607e 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -385,7 +385,7 @@ bool	create_text_segment_icon_from_url_match(LLUrlMatch* match,LLTextBase* base)
 	params.view = icon;
 	params.left_pad = 4;
 	params.right_pad = 4;
-	params.top_pad = 2;
+	params.top_pad = -2;
 	params.bottom_pad = 2;
 
 	base->appendWidget(params," ",false);