diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index 84bdaafacf3e13281f4a19428831147171a0ba0c..53e351e66e14fd3065597654b39ffa07cd8c1683 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -155,6 +155,12 @@ LLPreviewGesture* LLPreviewGesture::show(const LLUUID& item_id, const LLUUID& ob
 	return preview;
 }
 
+void LLPreviewGesture::draw()
+{
+	// Skip LLPreview::draw() to avoid description update
+	LLFloater::draw();
+}
+
 // virtual
 BOOL LLPreviewGesture::handleKeyHere(KEY key, MASK mask)
 {
@@ -497,11 +503,9 @@ BOOL LLPreviewGesture::postBuild()
 
 	if (item) 
 	{
-		childSetCommitCallback("desc", LLPreview::onText, this);
 		childSetText("desc", item->getDescription());
 		childSetPrevalidate("desc", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
 		
-		childSetCommitCallback("name", LLPreview::onText, this);
 		childSetText("name", item->getName());
 		childSetPrevalidate("name", &LLLineEditor::prevalidateASCIIPrintableNoPipe);
 	}
@@ -1077,6 +1081,8 @@ void LLPreviewGesture::saveIfNeeded()
 	}
 	else
 	{
+		LLPreview::onCommit();
+
 		// Every save gets a new UUID.  Yup.
 		LLTransactionID tid;
 		LLAssetID asset_id;
diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h
index 19fa1dcc37bec737cffa9e66dd3754ebf129c0df..5968e936ef828b02afbd1bc4caf6a14d2330e693 100644
--- a/indra/newview/llpreviewgesture.h
+++ b/indra/newview/llpreviewgesture.h
@@ -60,6 +60,7 @@ class LLPreviewGesture : public LLPreview
 	virtual ~LLPreviewGesture();
 
 	// LLView
+	/*virtual*/ void draw();
 	/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
 	/*virtual*/ BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
 									 EDragAndDropType cargo_type,