diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 219c2ee2548ce95d431ec92a7e275ad30b56dc32..f28fca35c5db1b11834fd91f00c576aada0b5b3c 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -52,6 +52,7 @@
 #include "llrender.h"
 #include "lluictrlfactory.h"
 #include "llhelp.h"
+#include "lldockablefloater.h"
 
 static LLDefaultChildRegistry::Register<LLButton> r("button");
 
@@ -1056,6 +1057,20 @@ void LLButton::setFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
 	button->setClickedCallback(boost::bind(&LLFloaterReg::toggleFloaterInstance, sdname));
 }
 
+// static
+void LLButton::setDockableFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname)
+{
+	LLButton* button = dynamic_cast<LLButton*>(ctrl);
+	if (!button)
+		return;
+	// Get the visibility control name for the floater
+	std::string vis_control_name = LLFloaterReg::declareVisibilityControl(sdname.asString());
+	// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
+	button->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+	// Set the clicked callback to toggle the floater
+	button->setClickedCallback(boost::bind(&LLDockableFloater::toggleInstance, sdname));
+}
+
 // static
 void LLButton::showHelp(LLUICtrl* ctrl, const LLSD& sdname)
 {
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index 73ba457d3488dc08f513d97ffd6f94eba502de08..7ca520b935a0604b3548948ce1f22b0ddc3a821a 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -232,6 +232,7 @@ class LLButton
 	static void		onHeldDown(void *userdata);  // to be called by gIdleCallbacks
 	static void		toggleFloaterAndSetToggleState(LLUICtrl* ctrl, const LLSD& sdname);
 	static void		setFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname);
+	static void		setDockableFloaterToggle(LLUICtrl* ctrl, const LLSD& sdname);
 	static void		showHelp(LLUICtrl* ctrl, const LLSD& sdname);
 
 	void		setForcePressedState(BOOL b) { mForcePressedState = b; }
diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index c512ef25bea80668776ade5000c59690c5b5e76e..228d0e701f58f8ef696a411e8161ca56ac5deba5 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -33,24 +33,36 @@
 #include "linden_common.h"
 
 #include "lldockablefloater.h"
+#include "llfloaterreg.h"
 
 //static
 LLHandle<LLFloater> LLDockableFloater::sInstanceHandle;
 
+//static
+void LLDockableFloater::init(LLDockableFloater* thiz)
+{
+	thiz->setDocked(thiz->mDockControl.get() != NULL
+			&& thiz->mDockControl.get()->isDockVisible());
+	thiz->resetInstance();
+
+	// all dockable floaters should have close, dock and minimize buttons
+	thiz->setCanClose(TRUE);
+	thiz->setCanDock(true);
+	thiz->setCanMinimize(TRUE);
+}
+
 LLDockableFloater::LLDockableFloater(LLDockControl* dockControl,
 		const LLSD& key, const Params& params) :
 	LLFloater(key, params), mDockControl(dockControl), mUniqueDocking(true)
 {
-	setDocked(mDockControl.get() != NULL && mDockControl.get()->isDockVisible());
-	resetInstance();
+	init(this);
 }
 
 LLDockableFloater::LLDockableFloater(LLDockControl* dockControl, bool uniqueDocking,
 		const LLSD& key, const Params& params) :
 	LLFloater(key, params), mDockControl(dockControl), mUniqueDocking(uniqueDocking)
 {
-	setDocked(mDockControl.get() != NULL && mDockControl.get()->isDockVisible());
-	resetInstance();
+	init(this);
 }
 
 LLDockableFloater::~LLDockableFloater()
@@ -64,6 +76,33 @@ BOOL LLDockableFloater::postBuild()
 	return LLView::postBuild();
 }
 
+//static
+void LLDockableFloater::toggleInstance(const LLSD& sdname)
+{
+	LLSD key;
+	std::string name = sdname.asString();
+
+	LLDockableFloater* instance =
+			dynamic_cast<LLDockableFloater*> (LLFloaterReg::findInstance(name));
+	// if floater closed or docked
+	if (instance == NULL || instance != NULL && instance->isDocked())
+	{
+		LLFloaterReg::toggleInstance(name, key);
+		// restore button toggle state
+		if (instance != NULL)
+		{
+			instance->storeVisibilityControl();
+		}
+	}
+	// if floater undocked
+	else if (instance != NULL)
+	{
+		instance->setMinimized(FALSE);
+		instance->setVisible(TRUE);
+		instance->setFocus(TRUE);
+	}
+}
+
 void LLDockableFloater::resetInstance()
 {
 	if (mUniqueDocking && sInstanceHandle.get() != this)
@@ -91,6 +130,17 @@ void LLDockableFloater::setVisible(BOOL visible)
 	LLFloater::setVisible(visible);
 }
 
+void LLDockableFloater::setMinimized(BOOL minimize)
+{
+	if(minimize && isDocked())
+	{
+		setVisible(FALSE);
+	}
+	setCanDock(!minimize);
+
+	LLFloater::setMinimized(minimize);
+}
+
 void LLDockableFloater::onDockHidden()
 {
 	setCanDock(FALSE);
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index 7d91d007ee90b4b133dd352fe1ee079050b9719c..499ce9ae8dfa4d39e5668848cc2952b26807b374 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -44,6 +44,8 @@
 class LLDockableFloater : public LLFloater
 {
 	static const U32 UNDOCK_LEAP_HEIGHT = 12;
+
+	static void init(LLDockableFloater* thiz);
 public:
 	LOG_CLASS(LLDockableFloater);
 	LLDockableFloater(LLDockControl* dockControl, const LLSD& key,
@@ -54,6 +56,8 @@ class LLDockableFloater : public LLFloater
 
 	static LLHandle<LLFloater> getInstanceHandle() { return sInstanceHandle; }
 
+	static void toggleInstance(const LLSD& sdname);
+
 	/**
 	 *  If descendant class overrides postBuild() in order to perform specific
 	 *  construction then it must still invoke its superclass' implementation.
@@ -68,6 +72,12 @@ class LLDockableFloater : public LLFloater
 	 */
 	/*virtual*/ void setVisible(BOOL visible);
 
+	/**
+	 *  If descendant class overrides setMinimized() then it must still invoke its
+	 *  superclass' implementation.
+	 */
+	/*virtual*/ void setMinimized(BOOL minimize);
+
 	virtual void onDockHidden();
 	virtual void onDockShown();
 
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 51e2b5dea4f5317861bf78e731d3b4aa170a5537..8d2783db209578cad81e304b22851c3589fa8cf8 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -926,6 +926,9 @@ void LLFloater::setMinimized(BOOL minimize)
 
 	if (minimize)
 	{
+		// minimized flag should be turned on before release focus
+		mMinimized = TRUE;
+
 		mExpandedRect = getRect();
 
 		// If the floater has been dragged while minimized in the
@@ -987,8 +990,6 @@ void LLFloater::setMinimized(BOOL minimize)
 			}
 		}
 		
-		mMinimized = TRUE;
-
 		// Reshape *after* setting mMinimized
 		reshape( minimized_width, floater_header_size, TRUE);
 	}
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 123e59ae6a08bf7657cbbea9fccccf0e198dac8f..e85bee7775667d9ecea78c9b5804c4363963c219 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -415,6 +415,9 @@ void LLTextBase::drawCursor()
 			return;
 		}
 
+		if (!mTextRect.contains(cursor_rect))
+			return;
+
 		// Draw the cursor
 		// (Flash the cursor every half second starting a fixed time after the last keystroke)
 		F32 elapsed = mCursorBlinkTimer.getElapsedTimeF32();
diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp
index c89e5944fab938171da8f1362d1bf7be87dc5d33..9a90ee267e2c0ee43b748daa87119997099d8864 100644
--- a/indra/llui/llui.cpp
+++ b/indra/llui/llui.cpp
@@ -1556,6 +1556,9 @@ void LLUI::initClass(const settings_map_t& settings,
 	// Button initialization callback for toggle buttons
 	LLUICtrl::CommitCallbackRegistry::defaultRegistrar().add("Button.SetFloaterToggle", boost::bind(&LLButton::setFloaterToggle, _1, _2));
 	
+	// Button initialization callback for toggle buttons on dockale floaters
+	LLUICtrl::CommitCallbackRegistry::defaultRegistrar().add("Button.SetDockableFloaterToggle", boost::bind(&LLButton::setDockableFloaterToggle, _1, _2));
+
 	// Display the help topic for the current context
 	LLUICtrl::CommitCallbackRegistry::defaultRegistrar().add("Button.ShowHelp", boost::bind(&LLButton::showHelp, _1, _2));
 
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 87c31c600e3ee1332ebfe4c7bac69e5682ede170..b9e5664ff7be37592280062a221191462861b128 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -136,7 +136,6 @@ set(viewer_SOURCE_FILES
     llfeaturemanager.cpp
     llfilepicker.cpp
     llfirstuse.cpp
-    llfirsttimetipmanager.cpp
     llflexibleobject.cpp
     llfloaterabout.cpp
     llfloateractivespeakers.cpp
@@ -161,7 +160,6 @@ set(viewer_SOURCE_FILES
     llfloaterdaycycle.cpp
     llfloaterdirectory.cpp
     llfloaterenvsettings.cpp
-    llfloaterfirsttimetip.cpp
     llfloaterfriends.cpp
     llfloaterfonttest.cpp
     llfloatergesture.cpp
@@ -325,7 +323,6 @@ set(viewer_SOURCE_FILES
     llpanelmedia.cpp
     llpanelmediahud.cpp
     llpanelmeprofile.cpp
-    llpanelmovetip.cpp
     llpanelmediasettingsgeneral.cpp
     llpanelmediasettingssecurity.cpp
     llpanelmediasettingspermissions.cpp
@@ -607,7 +604,6 @@ set(viewer_HEADER_FILES
     llfeaturemanager.h
     llfilepicker.h
     llfirstuse.h
-    llfirsttimetipmanager.h
     llflexibleobject.h
     llfloaterabout.h
     llfloateractivespeakers.h
@@ -632,7 +628,6 @@ set(viewer_HEADER_FILES
     llfloaterdaycycle.h
     llfloaterdirectory.h
     llfloaterenvsettings.h
-    llfloaterfirsttimetip.h
     llfloaterfonttest.h
     llfloaterfriends.h
     llfloatergesture.h
@@ -792,7 +787,6 @@ set(viewer_HEADER_FILES
     llpanelmedia.h
     llpanelmediahud.h
     llpanelmeprofile.h
-    llpanelmovetip.h
     llpanelmediasettingsgeneral.h
     llpanelmediasettingssecurity.h
     llpanelmediasettingspermissions.h
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index b06b4855ad50fa6288ca3cb55ff533752ded9b58..007c6b2c4c75b4dfe7b9ff6541a8a4916a9eaaa5 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -201,7 +201,7 @@ class LLFavoriteLandmarkMenuItem : public LLMenuItemCallGL
 			fb->handleHover(x, y, mask);
 		}
 
-		return LLMenuItemCallGL::handleHover(x, y, mask);
+		return TRUE;
 	}
 
 	void initFavoritesBarPointer(LLFavoritesBarCtrl* fb) { this->fb = fb; }
@@ -216,6 +216,35 @@ class LLFavoriteLandmarkMenuItem : public LLMenuItemCallGL
 	LLFavoritesBarCtrl* fb;
 };
 
+/**
+ * This class was introduced just for fixing the following issue:
+ * EXT-836 Nav bar: Favorites overflow menu passes left-mouse click through.
+ * We must explicitly handle drag and drop event by returning TRUE
+ * because otherwise LLToolDragAndDrop will initiate drag and drop operation
+ * with the world.
+ */
+class LLFavoriteLandmarkToggleableMenu : public LLToggleableMenu
+{
+public:
+	virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
+								   EDragAndDropType cargo_type,
+								   void* cargo_data,
+								   EAcceptance* accept,
+								   std::string& tooltip_msg)
+	{
+		*accept = ACCEPT_NO;
+		return TRUE;
+	}
+
+protected:
+	LLFavoriteLandmarkToggleableMenu(const LLToggleableMenu::Params& p):
+		LLToggleableMenu(p)
+	{
+	}
+
+	friend class LLUICtrlFactory;
+};
+
 /**
  * This class is needed to update an item being copied to the favorites folder
  * with a sort field value (required to save favorites bar's tabs order).
@@ -788,7 +817,7 @@ void LLFavoritesBarCtrl::showDropDownMenu()
 		menu_p.max_scrollable_items = 10;
 		menu_p.preferred_width = DROP_DOWN_MENU_WIDTH;
 
-		LLToggleableMenu* menu = LLUICtrlFactory::create<LLToggleableMenu>(menu_p);
+		LLToggleableMenu* menu = LLUICtrlFactory::create<LLFavoriteLandmarkToggleableMenu>(menu_p);
 		mPopupMenuHandle = menu->getHandle();
 	}
 
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index 0511ec1063fed8ef4c837d9af21371e8336be604..db20b11efd939f5f402605a585ef9d6c9f3a1cfa 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -39,7 +39,6 @@
 
 // Viewer includes
 #include "lljoystickbutton.h"
-#include "llfirsttimetipmanager.h"
 #include "llviewercontrol.h"
 #include "llbottomtray.h"
 #include "llagent.h"
@@ -54,10 +53,6 @@ const F32 CAMERA_BUTTON_DELAY = 0.0f;
 #define CONTROLS "controls"
 
 
-void show_tip(LLFirstTimeTipsManager::EFirstTimeTipType tipType, LLView* anchorView)
-{
-	LLFirstTimeTipsManager::showTipsFor(tipType, anchorView, LLFirstTimeTipsManager::TPA_POS_RIGHT_ALIGN_TOP);
-}
 //
 // Member functions
 //
@@ -88,7 +83,6 @@ void LLFloaterCamera::update()
 {
 	ECameraControlMode mode = determineMode();
 	if (mode != mCurrMode) setMode(mode);
-	show_tip(mMode2TipType[mode], this);
 }
 
 
@@ -129,12 +123,11 @@ void LLFloaterCamera::onOpen(const LLSD& key)
 		anchor_panel, this,
 		getDockTongue(), LLDockControl::TOP));
 
-	show_tip(mMode2TipType[mCurrMode], this);
 }
 
 
 LLFloaterCamera::LLFloaterCamera(const LLSD& val)
-:	LLDockableFloater(NULL, false, val),
+:	LLDockableFloater(NULL, val),
 	mCurrMode(CAMERA_CTRL_MODE_ORBIT),
 	mPrevMode(CAMERA_CTRL_MODE_ORBIT)
 {
@@ -149,8 +142,6 @@ BOOL LLFloaterCamera::postBuild()
 	mZoom = getChild<LLJoystickCameraZoom>("zoom");
 	mTrack = getChild<LLJoystickCameraTrack>(PAN);
 
-	initMode2TipTypeMap();
-
 	assignButton2Mode(CAMERA_CTRL_MODE_ORBIT,			"orbit_btn");
 	assignButton2Mode(CAMERA_CTRL_MODE_PAN,				"pan_btn");
 	assignButton2Mode(CAMERA_CTRL_MODE_FREE_CAMERA,		"freecamera_btn");
@@ -236,7 +227,6 @@ void LLFloaterCamera::onClickBtn(ECameraControlMode mode)
 	
 	switchMode(mode);
 
-	show_tip(mMode2TipType[mode], this);
 }
 
 void LLFloaterCamera::assignButton2Mode(ECameraControlMode mode, const std::string& button_name)
@@ -247,15 +237,6 @@ void LLFloaterCamera::assignButton2Mode(ECameraControlMode mode, const std::stri
 	mMode2Button[mode] = button;
 }
 
-void LLFloaterCamera::initMode2TipTypeMap()
-{
-	mMode2TipType[CAMERA_CTRL_MODE_ORBIT]			= LLFirstTimeTipsManager::FTT_CAMERA_ORBIT_MODE;
-	mMode2TipType[CAMERA_CTRL_MODE_PAN]				= LLFirstTimeTipsManager::FTT_CAMERA_PAN_MODE;
-	mMode2TipType[CAMERA_CTRL_MODE_FREE_CAMERA]		= LLFirstTimeTipsManager::FTT_CAMERA_FREE_MODE;
-	mMode2TipType[CAMERA_CTRL_MODE_AVATAR_VIEW]		= LLFirstTimeTipsManager::FTT_AVATAR_FREE_MODE;
-}
-
-
 void LLFloaterCamera::updateState()
 {
 	//updating buttons
@@ -305,7 +286,7 @@ void LLFloaterCamera::updateState()
 //-------------LLFloaterCameraPresets------------------------
 
 LLFloaterCameraPresets::LLFloaterCameraPresets(const LLSD& key):
-LLDockableFloater(NULL, false, key)
+LLDockableFloater(NULL, key)
 {}
 
 BOOL LLFloaterCameraPresets::postBuild()
@@ -330,17 +311,14 @@ void LLFloaterCameraPresets::onClickCameraPresets(LLUICtrl* ctrl, const LLSD& pa
 
 	if ("rear_view" == name)
 	{
-		LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_REAR, ctrl);
 		gAgent.switchCameraPreset(CAMERA_PRESET_REAR_VIEW);
 	}
 	else if ("group_view" == name)
 	{
-		LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_GROUP);
 		gAgent.switchCameraPreset(CAMERA_PRESET_GROUP_VIEW);
 	}
 	else if ("front_view" == name)
 	{
-		LLFirstTimeTipsManager::showTipsFor(LLFirstTimeTipsManager::FTT_CAMERA_PRESET_FRONT);
 		gAgent.switchCameraPreset(CAMERA_PRESET_FRONT_VIEW);
 	}
 
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 020cae7e82853035c6466b0b16511868692afaee..69df861a20536e9df54dae199158833f7dc2ec7f 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -35,8 +35,6 @@
 
 #include "lldockablefloater.h"
 
-#include "llfirsttimetipmanager.h"
-
 class LLJoystickCameraRotate;
 class LLJoystickCameraZoom;
 class LLJoystickCameraTrack;
@@ -105,13 +103,11 @@ class LLFloaterCamera
 
 	void onClickBtn(ECameraControlMode mode);
 	void assignButton2Mode(ECameraControlMode mode, const std::string& button_name);
-	void initMode2TipTypeMap();
-
+	
 
 	ECameraControlMode mPrevMode;
 	ECameraControlMode mCurrMode;
 	std::map<ECameraControlMode, LLButton*> mMode2Button;
-	std::map<ECameraControlMode, LLFirstTimeTipsManager::EFirstTimeTipType> mMode2TipType;
 
 };
 
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 3e449e2c821a66e2d33597cceb6b517e2a791f66..680106c7bbd342ae805cc3773c5e944b8afd8faa 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -40,9 +40,11 @@
 #include "llbottomtray.h"
 #include "llchannelmanager.h"
 #include "llchiclet.h"
+#include "llfloaterchat.h"
 #include "llfloaterreg.h"
 #include "llimview.h"
 #include "lllineeditor.h"
+#include "lllogchat.h"
 #include "llpanelimcontrolpanel.h"
 #include "llscreenchannel.h"
 #include "lltrans.h"
@@ -90,16 +92,6 @@ void LLIMFloater::onClose(bool app_quitting)
 	gIMMgr->removeSession(mSessionID);
 }
 
-void LLIMFloater::setMinimized(BOOL minimize)
-{
-	if(!isDocked())
-	{
-		setVisible(!minimize);
-	}	
-
-	LLFloater::setMinimized(minimize);
-}
-
 /* static */
 void LLIMFloater::newIMCallback(const LLSD& data){
 	
@@ -203,6 +195,12 @@ BOOL LLIMFloater::postBuild()
 	setTitle(LLIMModel::instance().getName(mSessionID));
 	setDocked(true);
 	
+	if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") )
+	{
+		LLLogChat::loadHistory(getTitle(), &chatFromLogFile, (void *)this);
+	}
+
+
 	return LLDockableFloater::postBuild();
 }
 
@@ -316,13 +314,19 @@ void LLIMFloater::setVisible(BOOL visible)
 bool LLIMFloater::toggle(const LLUUID& session_id)
 {
 	LLIMFloater* floater = LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
-	if (floater && floater->getVisible())
+	if (floater && floater->getVisible() && floater->isDocked())
 	{
 		// clicking on chiclet to close floater just hides it to maintain existing
 		// scroll/text entry state
 		floater->setVisible(false);
 		return false;
 	}
+	else if(floater && !floater->isDocked())
+	{
+		floater->setVisible(TRUE);
+		floater->setFocus(TRUE);
+		return true;
+	}
 	else
 	{
 		// ensure the list of messages is updated when floater is made visible
@@ -419,3 +423,37 @@ void LLIMFloater::setTyping(BOOL typing)
 {
 }
 
+void LLIMFloater::chatFromLogFile(LLLogChat::ELogLineType type, std::string line, void* userdata)
+{
+	if (!userdata) return;
+
+	LLIMFloater* self = (LLIMFloater*) userdata;
+	std::string message = line;
+	S32 im_log_option =  gSavedPerAccountSettings.getS32("IMLogOptions");
+	switch (type)
+	{
+	case LLLogChat::LOG_EMPTY:
+		// add warning log enabled message
+		if (im_log_option!=LOG_CHAT)
+		{
+			message = LLTrans::getString("IM_logging_string");
+		}
+		break;
+	case LLLogChat::LOG_END:
+		// add log end message
+		if (im_log_option!=LOG_CHAT)
+		{
+			message = LLTrans::getString("IM_logging_string");
+		}
+		break;
+	case LLLogChat::LOG_LINE:
+		// just add normal lines from file
+		break;
+	default:
+		// nothing
+		break;
+	}
+
+	self->mHistoryEditor->appendText(message, true, LLStyle::Params().color(LLUIColorTable::instance().getColor("ChatHistoryTextColor")));
+	self->mHistoryEditor->blockUndo();
+}
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index f85a941be3b70087023993f7e8d197af5978671b..5276013568fb3dd035345c9a82917b97f49b4ebc 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -34,6 +34,7 @@
 #define LL_IMFLOATER_H
 
 #include "lldockablefloater.h"
+#include "lllogchat.h"
 
 class LLLineEditor;
 class LLPanelChatControlPanel;
@@ -59,7 +60,6 @@ class LLIMFloater : public LLDockableFloater
 	/*virtual*/ void onClose(bool app_quitting);
 	/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
 	// override LLFloater's minimization according to EXT-1216
-	/*virtual*/ void setMinimized(BOOL minimize);
 
 	// Make IM conversion visible and update the message history
 	static LLIMFloater* show(const LLUUID& session_id);
@@ -91,7 +91,10 @@ class LLIMFloater : public LLDockableFloater
 	static void*	createPanelGroupControl(void* userdata);
 	// gets a rect that bounds possible positions for the LLIMFloater on a screen (EXT-1111)
 	void getAllowedRect(LLRect& rect);
-	
+
+	static void chatFromLogFile(LLLogChat::ELogLineType type, std::string line, void* userdata);
+
+
 	LLPanelChatControlPanel* mControlPanel;
 	LLUUID mSessionID;
 	S32 mLastMessageIndex;
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index d8f00ec370a58c6fde663558a1c7f064c77d3894..1bbcc3f98ed1fdaa20ee63277fbffadff7059a69 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -44,9 +44,7 @@
 #include "llvoavatarself.h" // to check gAgent.getAvatarObject()->isSitting()
 #include "llbottomtray.h"
 #include "llbutton.h"
-#include "llfirsttimetipmanager.h"
 #include "llfloaterreg.h"
-#include "llfloaterfirsttimetip.h"
 #include "lljoystickbutton.h"
 #include "lluictrlfactory.h"
 #include "llviewerwindow.h"
@@ -54,6 +52,7 @@
 #include "llselectmgr.h" 
 #include "llviewerparcelmgr.h"
 #include "llviewerregion.h"
+#include "lltooltip.h"
 
 //
 // Constants
@@ -71,7 +70,7 @@ const std::string BOTTOM_TRAY_BUTTON_NAME = "movement_btn";
 
 // protected
 LLFloaterMove::LLFloaterMove(const LLSD& key)
-:	LLDockableFloater(NULL, false, key),
+:	LLDockableFloater(NULL, key),
 	mForwardButton(NULL),
 	mBackwardButton(NULL),
 	mTurnLeftButton(NULL), 
@@ -305,7 +304,6 @@ void LLFloaterMove::setMovementMode(const EMovementMode mode)
 
 	showModeButtons(!bHideModeButtons);
 
-	showQuickTips(mode);
 }
 
 void LLFloaterMove::updateButtonsWithMovementMode(const EMovementMode newMode)
@@ -464,6 +462,11 @@ void LLFloaterMove::enableInstance(BOOL bEnable)
 	if (instance)
 	{
 		instance->setEnabled(bEnable);
+
+		if (gAgent.getFlying())
+		{
+			instance->showModeButtons(FALSE);
+		}
 	}
 }
 
@@ -487,8 +490,6 @@ void LLFloaterMove::onOpen(const LLSD& key)
 		anchor_panel, this,
 		getDockTongue(), LLDockControl::TOP));
 
-	showQuickTips(mCurrentMode);
-
 	sUpdateFlyingStatus();
 }
 
@@ -500,20 +501,6 @@ void LLFloaterMove::setDocked(bool docked, bool pop_on_undock/* = true*/)
 	updateHeight(show_mode_buttons);
 }
 
-void LLFloaterMove::showQuickTips(const EMovementMode mode)
-{
-	LLFirstTimeTipsManager::EFirstTimeTipType tipType = LLFirstTimeTipsManager::FTT_MOVE_WALK;
-	switch (mode)
-	{
-	case MM_FLY:	tipType = LLFirstTimeTipsManager::FTT_MOVE_FLY;			break;
-	case MM_RUN:	tipType = LLFirstTimeTipsManager::FTT_MOVE_RUN;			break;
-	case MM_WALK:	tipType = LLFirstTimeTipsManager::FTT_MOVE_WALK;		break;
-	default: llwarns << "Quick Tip type was not detected, FTT_MOVE_WALK will be used" << llendl;
-	}
-
-	LLFirstTimeTipsManager::showTipsFor(tipType, this, LLFirstTimeTipsManager::TPA_POS_LEFT_ALIGN_TOP);
-}
-
 void LLFloaterMove::setModeButtonToggleState(const EMovementMode mode)
 {
 	llassert_always(mModeControlButtonMap.end() != mModeControlButtonMap.find(mode));
@@ -610,6 +597,22 @@ void LLPanelStandStopFlying::setVisible(BOOL visible)
 	LLPanel::setVisible(visible);
 }
 
+BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask)
+{
+	LLToolTipMgr::instance().unblockToolTips();
+
+	if (mStandButton->getVisible())
+	{
+		LLToolTipMgr::instance().show(mStandButton->getToolTip());
+	}
+	else if (mStopFlyingButton->getVisible())
+	{
+		LLToolTipMgr::instance().show(mStopFlyingButton->getToolTip());
+	}
+
+	return TRUE;
+}
+
 //////////////////////////////////////////////////////////////////////////
 // Private Section
 //////////////////////////////////////////////////////////////////////////
@@ -635,7 +638,10 @@ void LLPanelStandStopFlying::onStandButtonClick()
 	gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
 
 	setFocus(FALSE); // EXT-482
-	setVisible(FALSE);
+
+	BOOL fly = gAgent.getFlying();
+	mStopFlyingButton->setVisible(fly);
+	setVisible(fly);
 }
 
 void LLPanelStandStopFlying::onStopFlyingButtonClick()
diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h
index 584c7c494cbd58d96e55502f34a552b9f35aa862..cbed36f10dc2b655fabeae3bbfe9be5dac02653d 100644
--- a/indra/newview/llmoveview.h
+++ b/indra/newview/llmoveview.h
@@ -142,6 +142,7 @@ class LLPanelStandStopFlying : public LLPanel
 	// *HACK: due to hard enough to have this control aligned with "Move" button while resizing
 	// let update its position in each frame
 	/*virtual*/ void draw(){updatePosition(); LLPanel::draw();}
+	/*virtual*/ BOOL handleToolTip(S32 x, S32 y, MASK mask);
 
 
 protected:
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index 1d8789fde0afc366743b485c847ff6d856690b6e..c2e1019f4366a75adb64423bd5385342ca20c6aa 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -201,35 +201,8 @@ BOOL LLNearbyChatBar::postBuild()
 	mChatBox->setMaxTextLength(1023);
 	mChatBox->setEnableLineHistory(TRUE);
 
-	// TODO: Initialization of the output monitor's params should be done via xml
-	const S32 MONITOR_RIGHT_PAD = 2;
-
-	LLRect monitor_rect = LLRect(0, 18, 18, 0);
-	LLRect chatbox_rect = mChatBox->getRect();
-
-	S32 monitor_height = monitor_rect.getHeight();
-	monitor_rect.mLeft = chatbox_rect.getWidth() - monitor_rect.getWidth() - MONITOR_RIGHT_PAD;
-	monitor_rect.mRight = chatbox_rect.getWidth() - MONITOR_RIGHT_PAD;
-	monitor_rect.mBottom = (chatbox_rect.getHeight() / 2) - (monitor_height / 2);
-	monitor_rect.mTop = monitor_rect.mBottom + monitor_height;
-
-	LLOutputMonitorCtrl::Params monitor_params = LLOutputMonitorCtrl::Params();
-	monitor_params.name = "output_monitor";
-	monitor_params.draw_border(false);
-	monitor_params.rect(monitor_rect);
-	monitor_params.auto_update(true);
-	monitor_params.speaker_id(gAgentID);
-
-	LLView::Follows follows = LLView::Follows();
-	follows.flags = FOLLOWS_RIGHT;
-	monitor_params.follows = follows;
-	mOutputMonitor = LLUICtrlFactory::create<LLOutputMonitorCtrl>(monitor_params);
-	mChatBox->addChild(mOutputMonitor);
-
-	// never show "muted" because you can't mute yourself
-	mOutputMonitor->setIsMuted(false);
+	mOutputMonitor = getChild<LLOutputMonitorCtrl>("chat_zone_indicator");
 	mOutputMonitor->setVisible(FALSE);
-
 	mTalkBtn = getChild<LLTalkButton>("talk");
 
 	// Speak button should be initially disabled because
@@ -254,6 +227,12 @@ bool LLNearbyChatBar::instanceExists()
 	return LLBottomTray::instanceExists() && LLBottomTray::getInstance()->getNearbyChatBar() != NULL;
 }
 
+void LLNearbyChatBar::draw()
+{
+	displaySpeakingIndicator();
+	LLPanel::draw();
+}
+
 std::string LLNearbyChatBar::getCurrentChat()
 {
 	return mChatBox ? mChatBox->getText() : LLStringUtil::null;
@@ -470,6 +449,36 @@ void LLNearbyChatBar::onChatBoxCommit()
 	gAgent.stopTyping();
 }
 
+void LLNearbyChatBar::displaySpeakingIndicator()
+{
+	LLSpeakerMgr::speaker_list_t speaker_list;
+	LLUUID id;
+
+	id.setNull();
+	mSpeakerMgr.update(TRUE);
+	mSpeakerMgr.getSpeakerList(&speaker_list, FALSE);
+
+	for (LLSpeakerMgr::speaker_list_t::iterator i = speaker_list.begin(); i != speaker_list.end(); ++i)
+	{
+		LLPointer<LLSpeaker> s = *i;
+		if (s->mSpeechVolume > 0 || s->mStatus == LLSpeaker::STATUS_SPEAKING)
+		{
+			id = s->mID;
+			break;
+		}
+	}
+
+	if (!id.isNull())
+	{
+		mOutputMonitor->setVisible(TRUE);
+		mOutputMonitor->setSpeakerId(id);
+	}
+	else
+	{
+		mOutputMonitor->setVisible(FALSE);
+	}
+}
+
 void LLNearbyChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate)
 {
 	sendChatFromViewer(utf8str_to_wstring(utf8text), type, animate);
@@ -622,7 +631,6 @@ LLWString LLNearbyChatBar::stripChannelNumber(const LLWString &mesg, S32* channe
 void LLNearbyChatBar::setPTTState(bool state)
 {
 	mTalkBtn->setSpeakBtnToggleState(state);
-	mOutputMonitor->setVisible(state);
 }
 
 void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel)
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 1b71ad69f2270d8441b60d25bc012056629db357..d6827315f2ae031392d3a196a488a05baee78131 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -40,6 +40,7 @@
 #include "llchiclet.h"
 #include "llvoiceclient.h"
 #include "lloutputmonitorctrl.h"
+#include "llfloateractivespeakers.h"
 
 class LLGestureComboBox
 	: public LLComboBox
@@ -84,6 +85,8 @@ class LLNearbyChatBar
 
 	LLLineEditor* getChatBox() { return mChatBox; }
 
+	virtual void draw();
+
 	std::string getCurrentChat();
 	virtual BOOL handleKeyHere( KEY key, MASK mask );
 
@@ -110,12 +113,15 @@ class LLNearbyChatBar
 	static LLWString stripChannelNumber(const LLWString &mesg, S32* channel);
 	EChatType processChatTypeTriggers(EChatType type, std::string &str);
 
+	void displaySpeakingIndicator();
+
 	// Which non-zero channel did we last chat on?
 	static S32 sLastSpecialChatChannel;
 
 	LLLineEditor*		mChatBox;
 	LLTalkButton*		mTalkBtn;
 	LLOutputMonitorCtrl* mOutputMonitor;
+	LLActiveSpeakerMgr  mSpeakerMgr;
 };
 
 #endif
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index d9cdf2e04fccd40f57b616d07128ef5abe137919..8bac9937f0d47a8881ece5f9a8f52753c42b9aca 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -222,7 +222,7 @@ void LLOutputMonitorCtrl::draw()
 
 void LLOutputMonitorCtrl::setSpeakerId(const LLUUID& speaker_id)
 {
-	if (speaker_id.isNull()) return;
+	if (speaker_id.isNull() || speaker_id == mSpeakerId) return;
 
 	mSpeakerId = speaker_id;
 
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index acad897fa41ee1ba8bca17aa3f125bf2e07919d8..e2281743c921e7d36d0ac1ff4aff059fdf7ee1aa 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -211,9 +211,19 @@ void LLPanelGroup::reposButton(const std::string& name)
 	button->setRect(btn_rect);
 }
 
-void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
+void LLPanelGroup::reposButtons()
 {
-	LLPanel::reshape(width, height, called_from_parent );
+	LLButton* button_refresh = findChild<LLButton>("btn_refresh");
+	LLButton* button_cancel = findChild<LLButton>("btn_cancel");
+
+	if(button_refresh && button_cancel && button_refresh->getVisible() && button_cancel->getVisible())
+	{
+		LLRect btn_refresh_rect = button_refresh->getRect();
+		LLRect btn_cancel_rect = button_cancel->getRect();
+		btn_refresh_rect.setLeftTopAndSize( btn_cancel_rect.mLeft + btn_cancel_rect.getWidth() + 2, 
+			btn_refresh_rect.getHeight() + 2, btn_refresh_rect.getWidth(), btn_refresh_rect.getHeight());
+		button_refresh->setRect(btn_refresh_rect);
+	}
 
 	reposButton("btn_apply");
 	reposButton("btn_create");
@@ -221,6 +231,13 @@ void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
 	reposButton("btn_cancel");
 }
 
+void LLPanelGroup::reshape(S32 width, S32 height, BOOL called_from_parent )
+{
+	LLPanel::reshape(width, height, called_from_parent );
+
+	reposButtons();
+}
+
 void LLPanelGroup::onBackBtnClick()
 {
 	LLSideTrayPanelContainer* parent = dynamic_cast<LLSideTrayPanelContainer*>(getParent());
@@ -411,7 +428,6 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
 
 		getChild<LLUICtrl>("group_name")->setVisible(false);
 		getChild<LLUICtrl>("group_name_editor")->setVisible(true);
-
 	}
 	else
 	{
@@ -431,6 +447,8 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
 		getChild<LLUICtrl>("group_name")->setVisible(true);
 		getChild<LLUICtrl>("group_name_editor")->setVisible(false);
 	}
+
+	reposButtons();
 }
 
 bool	LLPanelGroup::apply(LLPanelGroupTab* tab)
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index f2118a724489ffcddd3e84e2fa54fb255708c12c..628e2389b69f7795ce2eb38612e64653483b8e1f 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -104,6 +104,7 @@ class LLPanelGroup : public LLPanel,
 	static bool joinDlgCB(const LLSD& notification, const LLSD& response);
 
 	void reposButton(const std::string& name);
+	void reposButtons();
 	
 
 protected:
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index c5a92f52d09eb3be50541ee0cc425782c4ee5478..67a0528a069ddb8b596ebadf559b1fd92f9fa3ea 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -112,9 +112,12 @@ BOOL LLSysWellWindow::postBuild()
 void LLSysWellWindow::setMinimized(BOOL minimize)
 {
 	// we don't show empty Message Well window
-	setVisible(!minimize && !isWindowEmpty());
+	if (!minimize)
+	{
+		setVisible(!isWindowEmpty());
+	}
 
-	LLFloater::setMinimized(minimize);
+	LLDockableFloater::setMinimized(minimize);
 }
 
 //---------------------------------------------------------------------------------
@@ -264,7 +267,7 @@ void LLSysWellWindow::toggleWindow()
 				getDockTongue(), LLDockControl::TOP, boost::bind(&LLSysWellWindow::getAllowedRect, this, _1)));
 	}
 
-	if(!getVisible())
+	if(!getVisible() || isMinimized())
 	{
 		if(isWindowEmpty())
 		{
@@ -273,7 +276,7 @@ void LLSysWellWindow::toggleWindow()
 
 		setVisible(TRUE);
 	}
-	else
+	else if (isDocked())
 	{
 		setVisible(FALSE);
 	}
diff --git a/indra/newview/llteleporthistorystorage.cpp b/indra/newview/llteleporthistorystorage.cpp
index 0bb5a727e0bf37dc16b87800c2b98e3a9a6eda4a..a588153ca22d3ae8dfcf226f30a1125df0739c65 100644
--- a/indra/newview/llteleporthistorystorage.cpp
+++ b/indra/newview/llteleporthistorystorage.cpp
@@ -100,6 +100,7 @@ void LLTeleportHistoryStorage::onTeleportHistoryChange()
 void LLTeleportHistoryStorage::purgeItems()
 {
 	mItems.clear();
+	mHistoryChangedSignal();
 }
 
 void LLTeleportHistoryStorage::addItem(const std::string title, const LLVector3d& global_pos)
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index fe1492d93716d87282ddaaef908af8a5a652fa58..c2cd63900bd8a402a1d15e29aef3e66fb18af058 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -66,6 +66,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) :	LLToastPanel(p.notif
 		mReplyBtn->setVisible(FALSE);
 		S32 btn_height = mReplyBtn->getRect().getHeight();
 		LLRect msg_rect = mMessage->getRect();
+		mMessage->reshape(msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
 		msg_rect.setLeftTopAndSize(msg_rect.mLeft, msg_rect.mTop, msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
 		mMessage->setRect(msg_rect);
 	}
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 8c46949d708be20a442c44794a97bbf0a3e387f3..e88217fae65f8275ca45c8cf1bf96f834544e6c4 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -58,7 +58,6 @@
 #include "llfloaterchatterbox.h"
 #include "llfloaterdaycycle.h"
 #include "llfloaterdirectory.h"
-#include "llfloaterfirsttimetip.h"
 #include "llfloaterenvsettings.h"
 #include "llfloaterfonttest.h"
 #include "llfloatergesture.h"
@@ -154,7 +153,6 @@ void LLViewerFloaterReg::registerFloaters()
 	LLFloaterReg::add("compile_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCompileQueue>);
 	LLFloaterReg::add("contacts", "floater_my_friends.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterMyFriends>);	
 
-	LLFloaterReg::add("first_time_tip", "floater_first_time_tip.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFirstTimeTip>);
 	LLFloaterReg::add("env_day_cycle", "floater_day_cycle_options.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterDayCycle>);
 	LLFloaterReg::add("env_post_process", "floater_post_process.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostProcess>);
 	LLFloaterReg::add("env_settings", "floater_env_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEnvSettings>);
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index a81d26cb7b0bb49ab86a457038a5612ee0d8e3b5..b4e0d88e79813b26756725681038531cba6d8df4 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -82,7 +82,6 @@
 #include "llface.h"
 #include "llfilepicker.h"
 #include "llfirstuse.h"
-#include "llfirsttimetipmanager.h"
 #include "llfloater.h"
 #include "llfloaterabout.h"
 #include "llfloaterbuycurrency.h"
@@ -7603,24 +7602,6 @@ class LLWorldDayCycle : public view_listener_t
 	}
 };
 
-/// Show First Time Tips calbacks
-class LLHelpCheckShowFirstTimeTip : public view_listener_t
-{
-	bool handleEvent(const LLSD& userdata)
-	{
-		return LLFirstTimeTipsManager::tipsEnabled();
-	}
-};
-
-class LLHelpShowFirstTimeTip : public view_listener_t
-{
-	bool handleEvent(const LLSD& userdata)
-	{
-		LLFirstTimeTipsManager::enabledTip(!userdata.asBoolean());
-		return true;
-	}
-};
-
 void show_navbar_context_menu(LLView* ctrl, S32 x, S32 y)
 {
 	static LLMenuGL*	show_navbar_context_menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_hide_navbar.xml",
@@ -7738,9 +7719,6 @@ void initialize_menus()
 	view_listener_t::addMenu(new LLWorldPostProcess(), "World.PostProcess");
 	view_listener_t::addMenu(new LLWorldDayCycle(), "World.DayCycle");
 
-	view_listener_t::addMenu(new LLHelpCheckShowFirstTimeTip(), "Help.CheckShowFirstTimeTip");
-	view_listener_t::addMenu(new LLHelpShowFirstTimeTip(), "Help.ShowQuickTips");
-
 	// Tools menu
 	view_listener_t::addMenu(new LLToolsSelectTool(), "Tools.SelectTool");
 	view_listener_t::addMenu(new LLToolsSelectOnlyMyObjects(), "Tools.SelectOnlyMyObjects");
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index c4a2654403d6d5849284359eb95ffbe2c0462d99..86c75a39468a14a5ad91a86648585ae695b7384f 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  can_dock="true"
- can_minimize="false"
- can_close="false" 
+ can_minimize="true"
+ can_close="true" 
  center_horiz="true"
  follows="top"
  height="110"
diff --git a/indra/newview/skins/default/xui/en/floater_moveview.xml b/indra/newview/skins/default/xui/en/floater_moveview.xml
index 2790a12a36daf4cad3f1f34e9b325d0f08062fa2..f82e01dd1f22be246ec7ed0e4b0a145454eda418 100644
--- a/indra/newview/skins/default/xui/en/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/en/floater_moveview.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <floater
  can_dock="true"
- can_close="false"
- can_minimize="false"
+ can_close="true"
+ can_minimize="true"
  center_horiz="true"
  follows="bottom"
  height="110"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index ec528d53edae91436e6ce4ff809d09a1af7d4d70..aec6f3e65499d182424e9567b2901d577ac3001a 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -1004,15 +1004,6 @@
              function="Floater.Show"
              parameter="hud" />
         </menu_item_call>
-      <!--  <menu_item_check
-         label="Show Quick Tips"
-         layout="topleft"
-         name="Show Quick Tips">
-            <menu_item_check.on_check
-             function="Help.CheckShowFirstTimeTip" />
-            <menu_item_check.on_click
-             function="Help.ShowQuickTips" />
-        </menu_item_check>-->
         <menu_item_separator
              layout="topleft" />
         <menu_item_call
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 72869a31977acd09503412c2e4febc6e1a863ada..b4847368b27c14b32a10f0f3ad470da8c62b56b1 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -83,7 +83,7 @@
              top="6"
              width="70">
                 <button.init_callback
-                 function="Button.SetFloaterToggle"
+                 function="Button.SetDockableFloaterToggle"
                  parameter="moveview" />
             </button>
         </layout_panel>
@@ -121,7 +121,7 @@
              name="camera_btn"
              width="70">
                 <button.init_callback
-                 function="Button.SetFloaterToggle"
+                 function="Button.SetDockableFloaterToggle"
                  parameter="camera" />
             </button>
  			<button
@@ -136,7 +136,7 @@
          	 image_selected="toggle_button_selected"
              image_unselected="toggle_button_off">
              <button.init_callback
-             	function="Button.SetFloaterToggle"
+             	function="Button.SetDockableFloaterToggle"
              	parameter="camera_presets"
              	/>
             </button>
diff --git a/indra/newview/skins/default/xui/en/panel_chat_item.xml b/indra/newview/skins/default/xui/en/panel_chat_item.xml
index 713c3a41a2f74e06311b53c5b897c9e951a4af1d..78f53562cd3029fe8c7bfbf619e0346fa9184ac8 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_item.xml
@@ -16,7 +16,7 @@
 		  />
     	<text
         	width="130" top="25" left="40" height="20" follows="left|right|top"
-        	font="SansSerifBigBold" text_color="white" word_wrap="true"
+        	font="SansSerifBigBold" text_color="white" word_wrap="false" use_ellipses="true"
         	mouse_opaque="true" name="sender_name" >
 	      Jerry Knight
     	</text>
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
index 4088d96ebf50c0fb23e738b5695898131fc69afa..d914583352a7214504e748d2a0ce1bb4402fed13 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml
@@ -21,15 +21,28 @@
      tool_tip="Press Enter to say, Ctrl-Enter to shout."
      top="3"
      width="250" />
+    <output_monitor
+     auto_update="true"
+     follows="right"
+     draw_border="false"
+     halign="left"
+     height="16"
+     layout="topleft"
+     left_pad="-24"
+     mouse_opaque="true"
+     name="chat_zone_indicator"
+     top="4"
+     visible="true"
+     width="20" />
     <button 
-	   follows="right" 
-	   width="45" 
-	   top="3" 
-	   layout="topleft" 
-	   left_pad="5"
-	   label="Log" 
-	   height="20">
-      <button.commit_callback function="Floater.Toggle" parameter="nearby_chat"/>
+     follows="right" 
+     width="45"
+     top="3" 
+     layout="topleft" 
+     left_pad="5"
+     label="Log" 
+     height="20">
+    <button.commit_callback function="Floater.Toggle" parameter="nearby_chat"/>
     </button>
     <chiclet_talk
      follows="right"
diff --git a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
index df5ea24c7352781a58e06eeece5407baf299c1d7..3ff0b3062aaf2ec54f0b040e4de05d8c4d95c10f 100644
--- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
@@ -1,6 +1,12 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <accordion_tab
+    header_bg_color="0.68 0.68 0.68 1"
+    header_txt_color="0.68 0.68 0.68 1"
     header_collapse_img="Accordion_ArrowClosed_Off"
     header_collapse_img_pressed="Accordion_ArrowClosed_Press"
     header_expand_img="Accordion_ArrowOpened_Off"
-    header_expand_img_pressed="Accordion_ArrowOpened_Press" />
+    header_expand_img_pressed="Accordion_ArrowOpened_Press"
+    header_image="Accordion_Off.png"
+    header_image_over="Accordion_Over"
+    header_image_pressed="Accordion_Press"
+    />