diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index b276ee740515ab172a8796d49c87617f28d205b4..071ceb39395d78ebb0d0db5b84eaf5b6ffadf69d 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1419,9 +1419,9 @@ void LLTextBase::draw()
 		drawCursor();
 	}
  
-	mDocumentView->setVisible(FALSE);
+	mDocumentView->setVisibleDirect(FALSE);
 	LLUICtrl::draw();
-	mDocumentView->setVisible(TRUE);
+	mDocumentView->setVisibleDirect(TRUE);
 }
 
 
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 6080d6797e82dd684669607ae3c692f577c8c60a..a41fd371c253ebc4d25270a393306a40197cbbb6 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -292,6 +292,7 @@ class LLView
 	void 	setAllChildrenEnabled(BOOL b);
 
 	virtual void	setVisible(BOOL visible);
+	void			setVisibleDirect(BOOL visible) {mVisible = visible;}
 	const BOOL&		getVisible() const			{ return mVisible; }
 	virtual void	setEnabled(BOOL enabled);
 	BOOL			getEnabled() const			{ return mEnabled; }