diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index fad98e553fd609eb9f4a801112da7fc2198409e3..341debc9a831c8556a93e90ee47c949eac8bb5fb 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -810,6 +810,11 @@ void LLFloater::applyTitle()
 	{
 		mDragHandle->setTitle ( mTitle );
 	}
+
+	if (getHost())
+	{
+		getHost()->updateFloaterTitle(this);	
+	}
 }
 
 std::string LLFloater::getCurrentTitle() const
diff --git a/indra/llui/llmultifloater.cpp b/indra/llui/llmultifloater.cpp
index 3aea648562d5bb2126b0c85cdd19c8b490b6ae91..b1dbce000076490a39dd3ccbf3b3bdaaa8a47168 100644
--- a/indra/llui/llmultifloater.cpp
+++ b/indra/llui/llmultifloater.cpp
@@ -238,6 +238,16 @@ void LLMultiFloater::addFloater(LLFloater* floaterp, BOOL select_added_floater,
 	moveResizeHandlesToFront();
 }
 
+void LLMultiFloater::updateFloaterTitle(LLFloater* floaterp)
+{
+	S32 index = mTabContainer->getIndexForPanel(floaterp);
+	if (index != -1)
+	{
+		mTabContainer->setPanelTitle(index, floaterp->getShortTitle());
+	}
+}
+
+
 /**
 	BOOL selectFloater(LLFloater* floaterp)
 
diff --git a/indra/llui/llmultifloater.h b/indra/llui/llmultifloater.h
index bbf2c56fe71c6984a59a1b4a781a284d79be80c9..24a841f64e3e81097e10c133cc04cb048dec427d 100644
--- a/indra/llui/llmultifloater.h
+++ b/indra/llui/llmultifloater.h
@@ -80,6 +80,7 @@ class LLMultiFloater : public LLFloater
 	void onTabSelected();
 
 	virtual void updateResizeLimits();
+	virtual void updateFloaterTitle(LLFloater* floaterp);
 
 protected:
 	struct LLFloaterData