diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp
index 47cdd098fa75e8581ca5bdab89084e6de5543d81..d83028ec4aae6d178d85ba9bac4e3030c8a1a88c 100755
--- a/indra/llui/llmodaldialog.cpp
+++ b/indra/llui/llmodaldialog.cpp
@@ -195,7 +195,7 @@ BOOL LLModalDialog::handleHover(S32 x, S32 y, MASK mask)
 	if( childrenHandleHover(x, y, mask) == NULL )
 	{
 		getWindow()->setCursor(UI_CURSOR_ARROW);
-		LL_DEBUGS(LLERR_USER_INPUT) << "hover handled by " << getName() << LL_ENDL;		
+		LL_DEBUGS("UserInput") << "hover handled by " << getName() << LL_ENDL;		
 	}
 
 	LLView* popup_menu = LLMenuGL::sMenuContainer->getVisibleMenu();
diff --git a/indra/llui/llmultifloater.cpp b/indra/llui/llmultifloater.cpp
index 48b5b08c1b51c6b173a146c8eaf5ee93f8c86ffa..d1a597511eff4dd85d91b559f82763f5b9d9fb1f 100755
--- a/indra/llui/llmultifloater.cpp
+++ b/indra/llui/llmultifloater.cpp
@@ -67,14 +67,13 @@ void LLMultiFloater::buildTabContainer()
 	}
 }
 
-void LLMultiFloater::onOpen(const LLSD& key)
+void LLMultiFloater::onClose(bool app_quitting)
 {
-// 	if (mTabContainer->getTabCount() <= 0)
-// 	{
-// 		// for now, don't allow multifloaters
-// 		// without any child floaters
-// 		closeFloater();
-// 	}
+	if(isMinimized())
+	{
+		setMinimized(FALSE);
+	}
+	LLFloater::onClose(app_quitting);
 }
 
 void LLMultiFloater::draw()
diff --git a/indra/llui/llmultifloater.h b/indra/llui/llmultifloater.h
index c1b1a357edca572bb1b84bfc9ab0252e82ec8938..c106a6252746f6756a5a845283f839f1b0993f69 100755
--- a/indra/llui/llmultifloater.h
+++ b/indra/llui/llmultifloater.h
@@ -44,7 +44,7 @@ class LLMultiFloater : public LLFloater
 	void buildTabContainer();
 	
 	virtual BOOL postBuild();
-	/*virtual*/ void onOpen(const LLSD& key);
+	/*virtual*/ void onClose(bool app_quitting);
 	virtual void draw();
 	virtual void setVisible(BOOL visible);
 	/*virtual*/ BOOL handleKeyHere(KEY key, MASK mask);
diff --git a/indra/llxml/llcontrol.h b/indra/llxml/llcontrol.h
index 8a8479f90f3ba3cd819b5da682e4a8b495655893..04575d81e09d47b7bf636e6a28209ca5eae8af5e 100755
--- a/indra/llxml/llcontrol.h
+++ b/indra/llxml/llcontrol.h
@@ -395,7 +395,6 @@ class LLCachedControl
 public:
 	LLCachedControl(LLControlGroup& group,
 					const std::string& name,
-
 					const T& default_value, 
 					const std::string& comment = "Declared In Code")
 	{
@@ -406,6 +405,16 @@ class LLCachedControl
 		}
 	}
 
+	LLCachedControl(LLControlGroup& group,
+					const std::string& name)
+	{
+		mCachedControlPtr = LLControlCache<T>::getInstance(name);
+		if (mCachedControlPtr.isNull())
+		{
+			mCachedControlPtr = new LLControlCache<T>(group, name);
+		}
+	}
+
 	operator const T&() const { return mCachedControlPtr->getValue(); }
 	operator boost::function<const T&()> () const { return boost::function<const T&()>(*this); }
 	const T& operator()() { return mCachedControlPtr->getValue(); }
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index bc075195066cd62ef924ee5e1a25183bee0e270d..76c37439abd691d2658bb19a4fa6ccf142c15f2c 100755
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -413,7 +413,7 @@ void LLFastTimerView::draw()
 	mAllTimeMax = llmax(mAllTimeMax, mRecording.getLastRecording().getSum(FTM_FRAME));
 	mHoverID = NULL;
 	mHoverBarIndex = -1;
-					}
+}
 
 void LLFastTimerView::onOpen(const LLSD& key)
 {
@@ -429,6 +429,10 @@ void LLFastTimerView::onOpen(const LLSD& key)
 	}
 }
 										
+void LLFastTimerView::onClose(bool app_quitting)
+{
+	setVisible(FALSE);
+}
 
 void saveChart(const std::string& label, const char* suffix, LLImageRaw* scratch)
 {
@@ -936,10 +940,7 @@ void LLFastTimerView::doAnalysis(std::string baseline, std::string target, std::
 		return ;
 	}
 }
-void	LLFastTimerView::onClickCloseBtn(bool)
-{
-	setVisible(false);
-}
+
 
 void LLFastTimerView::printLineStats()
 {
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index d7d87c85229a9193d1d682c27ce3c39b5f210fad..3e30bd86ba8bda4536cfbd134c8dc1430845ef3d 100755
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -62,10 +62,10 @@ class LLFastTimerView : public LLFloater
 	virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
 	virtual void draw();
 	virtual void onOpen(const LLSD& key);
+	virtual void onClose(bool app_quitting);
 	LLTrace::BlockTimerStatHandle* getLegendID(S32 y);
 
 private:	
-	virtual	void	onClickCloseBtn(bool app_quitting = false);
 	void drawTicks();
 	void drawLineGraph();
 	void drawLegend();
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 7bd449b8b6e36304d3c40c20e71ee447d48d893f..12006a31ba766b4b226a7f0d46eb581bb2d8c7f6 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -2133,14 +2133,7 @@ BOOL LLFloaterIMContainer::isFrontmost()
 // This is intentional so it doesn't confuse the user. onClickCloseBtn() closes the whole floater.
 void LLFloaterIMContainer::onClickCloseBtn(bool app_quitting/* = false*/)
 {
-	// Always unminimize before trying to close.
-	// Most of the time the user will never see this state.
-	if(isMinimized())
-	{
-		LLMultiFloater::setMinimized(FALSE);
-	}
-
-	LLFloater::closeFloater(app_quitting);
+	LLMultiFloater::closeFloater(app_quitting);
 }
 
 void LLFloaterIMContainer::closeHostedFloater()
diff --git a/indra/newview/llpersistentnotificationstorage.cpp b/indra/newview/llpersistentnotificationstorage.cpp
index ea3cd9e78ea62a7006ec7718322b440380ae3a78..ce4b2d543b44159fb86fc10e1a1837b5a7d95d31 100755
--- a/indra/newview/llpersistentnotificationstorage.cpp
+++ b/indra/newview/llpersistentnotificationstorage.cpp
@@ -79,9 +79,9 @@ void LLPersistentNotificationStorage::saveNotifications()
 		data.append(notification->asLLSD(true));
 		if (data.size() >= gSavedSettings.getS32("MaxPersistentNotifications"))
 		{
-			llwarns << "Too many persistent notifications."
+			LL_WARNS() << "Too many persistent notifications."
 					<< " Saved " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << history_channel->size()
-					<< " persistent notifications." << llendl;
+					<< " persistent notifications." << LL_ENDL;
 			break;
 		}
 
@@ -147,7 +147,7 @@ void LLPersistentNotificationStorage::loadNotifications()
 		if (processed_notifications >= gSavedSettings.getS32("MaxPersistentNotifications"))
 		{
 			llwarns << "Too many persistent notifications."
-					<< " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << llendl;
+					<< " Processed " << gSavedSettings.getS32("MaxPersistentNotifications") << " of " << data.size() << " persistent notifications." << LL_ENDL;
 		    break;
 		}
 	}
diff --git a/indra/newview/llscenemonitor.cpp b/indra/newview/llscenemonitor.cpp
index 6c35ae267201d925f770a9241a93d2b9ffb6e592..44ab35420b3e68d416382c79a1ce157e2b262b07 100644
--- a/indra/newview/llscenemonitor.cpp
+++ b/indra/newview/llscenemonitor.cpp
@@ -699,7 +699,7 @@ LLSceneMonitorView::LLSceneMonitorView(const LLRect& rect)
 	setCanClose(true);
 }
 
-void LLSceneMonitorView::onClickCloseBtn()
+void LLSceneMonitorView::onClose(bool app_quitting)
 {
 	setVisible(false);	
 }
diff --git a/indra/newview/llscenemonitor.h b/indra/newview/llscenemonitor.h
index c99ec1e82494a16d5073e624852ef2b9542f9d1b..e9ceb2aa2ab0fc33894b70bca30c303746c93fe5 100644
--- a/indra/newview/llscenemonitor.h
+++ b/indra/newview/llscenemonitor.h
@@ -115,7 +115,7 @@ class LLSceneMonitorView : public LLFloater
 	virtual void onVisibilityChange(BOOL visible);
 
 protected:
-	virtual void onClickCloseBtn();
+	virtual void onClose(bool app_quitting=false);
 };
 
 extern LLSceneMonitorView* gSceneMonitorView;
diff --git a/indra/newview/llsceneview.cpp b/indra/newview/llsceneview.cpp
index cbd8bee9d5733e7706b5273a890cdf2a747663d2..32f327b7620cbb66ae7f673c76860054fb8c0d54 100755
--- a/indra/newview/llsceneview.cpp
+++ b/indra/newview/llsceneview.cpp
@@ -51,7 +51,7 @@ LLSceneView::LLSceneView(const LLRect& rect)
 	setCanClose(true);
 }
 
-void LLSceneView::onClickCloseBtn(bool)
+void LLSceneView::onClose(bool)
 {
 	setVisible(false);
 }
diff --git a/indra/newview/llsceneview.h b/indra/newview/llsceneview.h
index 1fceecb9e1a9efe975ff3574588c5f8805bfb6c9..6d839bcf0816ddf720f2d5819ca77f178044d289 100755
--- a/indra/newview/llsceneview.h
+++ b/indra/newview/llsceneview.h
@@ -38,7 +38,7 @@ class LLSceneView : public LLFloater
 	virtual void draw();
 	
 protected:
-	virtual void onClickCloseBtn(bool app_qutting = false);
+	virtual void onClose(bool app_qutting = false);
 
 
 };
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index bccb0d46cf001f29ef3a45a2fd61f45fdb932d16..3652e422c51849f3533044d1c77835c982e04275 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -5517,10 +5517,10 @@ void LLVOAvatar::addChild(LLViewerObject *childp)
 	{
 		if (!attachObject(childp))
 		{
-			llwarns << "addChild() failed for " 
+			LL_WARNS() << "addChild() failed for " 
 					<< childp->getID()
 					<< " item " << childp->getAttachmentItemID()
-					<< llendl;
+					<< LL_ENDL;
 			// MAINT-3312 backout
 			// mPendingAttachment.push_back(childp);
 		}
@@ -5652,10 +5652,10 @@ void LLVOAvatar::lazyAttach()
 		{
 			if (!attachObject(cur_attachment))
 			{	// Drop it
-				llwarns << "attachObject() failed for " 
+				LL_WARNS() << "attachObject() failed for " 
 					<< cur_attachment->getID()
 					<< " item " << cur_attachment->getAttachmentItemID()
-					<< llendl;
+					<< LL_ENDL;
 				// MAINT-3312 backout
 				//still_pending.push_back(cur_attachment);
 			}