diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index c3dd4ae647d9436b85fbde6d9d8b2927ea24373f..9a2f2ab4d319c5a24fb45e59bc342634ce2c8c04 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -136,21 +136,10 @@ void LLDockableFloater::setVisible(BOOL visible)
 
 void LLDockableFloater::setMinimized(BOOL minimize)
 {
-	if(minimize && isDocked())
+	if(minimize)
 	{
 		setVisible(FALSE);
 	}
-
-	if (minimize)
-	{
-		setCanDock(false);
-	}
-	else if (!minimize && mDockControl.get() != NULL && mDockControl.get()->isDockVisible())
-	{
-		setCanDock(true);
-	}
-
-	LLFloater::setMinimized(minimize);
 }
 
 LLView * LLDockableFloater::getDockWidget()
@@ -217,6 +206,16 @@ void LLDockableFloater::draw()
 	LLFloater::draw();
 }
 
+void LLDockableFloater::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+	if (isDocked())
+	{
+		setDocked(false);
+	}
+
+	LLFloater::reshape(width, height, called_from_parent);
+}
+
 void LLDockableFloater::setDockControl(LLDockControl* dockControl)
 {
 	mDockControl.reset(dockControl);
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index 46491d8a29e9743bca40046254a26f217e7c070d..e5f94dca91e9219edaf2e5185aaac3e15a1b9bd0 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -65,6 +65,7 @@ class LLDockableFloater : public LLFloater
 	/* virtula */BOOL postBuild();
 	/* virtual */void setDocked(bool docked, bool pop_on_undock = true);
 	/* virtual */void draw();
+	/* virtual */void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
 
 	/**
 	 *  If descendant class overrides setVisible() then it must still invoke its
diff --git a/indra/llui/lldockcontrol.cpp b/indra/llui/lldockcontrol.cpp
index 045505af5b66e8f044f0756cbe21c404336f5970..456a2925a3e70314b747ce30be19beedc3a054b5 100644
--- a/indra/llui/lldockcontrol.cpp
+++ b/indra/llui/lldockcontrol.cpp
@@ -266,6 +266,11 @@ void LLDockControl::off()
 	mEnabled = false;
 }
 
+void LLDockControl::forceRecalculatePosition()
+{
+	mRecalculateDocablePosition = true;
+}
+
 void LLDockControl::drawToungue()
 {
 	if (mEnabled)
diff --git a/indra/llui/lldockcontrol.h b/indra/llui/lldockcontrol.h
index eaedb4c30766c05e2246e582cb30ae596961360f..30a45bedc74e43f3225fe9dfb404e6440fadc8a0 100644
--- a/indra/llui/lldockcontrol.h
+++ b/indra/llui/lldockcontrol.h
@@ -63,6 +63,7 @@ class LLDockControl
 public:
 	void on();
 	void off();
+	void forceRecalculatePosition();
 	void setDock(LLView* dockWidget);
 	LLView* getDock()
 	{
diff --git a/indra/llui/lllayoutstack.cpp b/indra/llui/lllayoutstack.cpp
index 14a6ddb7e0e8babee240e65250221f3fed77e771..1fb618adeeefcad30bca0b04db1723e6b646003d 100644
--- a/indra/llui/lllayoutstack.cpp
+++ b/indra/llui/lllayoutstack.cpp
@@ -413,6 +413,19 @@ void LLLayoutStack::updatePanelAutoResize(const std::string& panel_name, BOOL au
 	}
 }
 
+bool LLLayoutStack::getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp)
+{
+	LayoutPanel* panel = findEmbeddedPanelByName(panel_name);
+
+	if (panel)
+	{
+		if (min_widthp) *min_widthp = panel->mMinWidth;
+		if (min_heightp) *min_heightp = panel->mMinHeight;
+	}
+
+	return NULL != panel;
+}
+
 static LLFastTimer::DeclareTimer FTM_UPDATE_LAYOUT("Update LayoutStacks");
 void LLLayoutStack::updateLayout(BOOL force_resize)
 {
diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h
index 9cbcb285dcaa813cd9ae5808357f1b809c9d401a..abd5436018dbd51a6045b29f710cdec3d18740c5 100644
--- a/indra/llui/lllayoutstack.h
+++ b/indra/llui/lllayoutstack.h
@@ -82,6 +82,14 @@ class LLLayoutStack : public LLView, public LLInstanceTracker<LLLayoutStack>
 
 	void updatePanelAutoResize(const std::string& panel_name, BOOL auto_resize);
 	
+	/**
+	 * Gets minimal width and/or height of the specified by name panel.
+	 *
+	 * If it is necessary to get only the one dimension pass NULL for another one.
+	 * @returns true if specified by panel_name internal panel exists, false otherwise.
+	 */
+	bool getPanelMinSize(const std::string& panel_name, S32* min_widthp, S32* min_heightp);
+	
 	void updateLayout(BOOL force_resize = FALSE);
 	static void updateClass();
 
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 958dbf226a8d104d745e985dd61841e7cb680be9..7985ccc2a1d0a549e3e552dee366e39fc36081e4 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -237,7 +237,7 @@ void LLBottomTray::setVisible(BOOL visible)
 			LLView* viewp = *child_it;
 			std::string name = viewp->getName();
 			
-			if ("chat_bar" == name || "movement_panel" == name || "cam_panel" == name || "snapshot_panel" == name)
+			if ("chat_bar" == name || "movement_panel" == name || "cam_panel" == name || "snapshot_panel" == name || "gesture_panel" == name)
 				continue;
 			else 
 			{
@@ -317,6 +317,10 @@ BOOL LLBottomTray::postBuild()
 	// Registering Chat Bar to receive Voice client status change notifications.
 	gVoiceClient->addObserver(this);
 
+	mObjectDefaultWidthMap[RS_BUTTON_GESTURES] = mGesturePanel->getRect().getWidth();
+	mObjectDefaultWidthMap[RS_BUTTON_MOVEMENT] = mMovementPanel->getRect().getWidth();
+	mObjectDefaultWidthMap[RS_BUTTON_CAMERA]   = mCamPanel->getRect().getWidth();
+
 	return TRUE;
 }
 
@@ -402,7 +406,6 @@ void LLBottomTray::reshape(S32 width, S32 height, BOOL called_from_parent)
 		}
 	}
 
-	lldebugs << "There is no enough width to reshape all children: " << extra_shrink_width << llendl;
 	if (should_be_reshaped)
 	{
 		lldebugs << "Reshape all children with width: " << width << llendl;
@@ -473,7 +476,12 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
 	S32 buttons_freed_width = 0;
 	if (still_should_be_processed)
 	{
-		processHideButton(RS_BUTTON_SNAPSHOT, &delta_width, &buttons_freed_width);
+		processShrinkButtons(&delta_width);
+
+		if (delta_width < 0)
+		{
+			processHideButton(RS_BUTTON_SNAPSHOT, &delta_width, &buttons_freed_width);
+		}
 
 		if (delta_width < 0)
 		{
@@ -493,7 +501,7 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
 		if (delta_width < 0)
 		{
 			extra_shrink_width = -delta_width;
-			lldebugs << "There is no enough room for bottom tray, resizing still should be processed: " 
+			llwarns << "There is no enough width to reshape all children: " 
 				<< extra_shrink_width << llendl;
 		}
 
@@ -551,7 +559,7 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
 		processShowButton(RS_BUTTON_SNAPSHOT, &available_width, &buttons_required_width);
 	}
 
-	// if we have to show some buttons but whidth increasing is not enough...
+	// if we have to show some buttons but width increasing is not enough...
 	if (buttons_required_width > 0 && delta_width < buttons_required_width)
 	{
 		// ... let's shrink nearby chat & chiclet panels
@@ -587,6 +595,8 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
 	// shown buttons take some space, rest should be processed by nearby chatbar & chiclet panels
 	delta_width -= buttons_required_width;
 
+	processExtendButtons(&delta_width);
+
 	// how many space can nearby chatbar take?
 	S32 chatbar_panel_width_ = mNearbyChatBar->getRect().getWidth();
 	if (delta_width > 0 && chatbar_panel_width_ < chatbar_panel_max_width)
@@ -656,6 +666,119 @@ void LLBottomTray::processHideButton(EResizeState processed_object_type, S32* re
 	}
 }
 
+void LLBottomTray::processShrinkButtons(S32* required_width)
+{
+	processShrinkButton(RS_BUTTON_CAMERA, required_width);
+
+	if (*required_width < 0)
+	{
+		processShrinkButton(RS_BUTTON_MOVEMENT, required_width);
+	}
+	if (*required_width < 0)
+	{
+		processShrinkButton(RS_BUTTON_GESTURES, required_width);
+	}
+}
+
+void LLBottomTray::processShrinkButton(EResizeState processed_object_type, /*const std::string& panel_name, */S32* required_width)
+{
+	LLPanel* panel = mStateProcessedObjectMap[processed_object_type];
+	if (NULL == panel)
+	{
+		lldebugs << "There is no object to process for type: " << processed_object_type << llendl;
+		return;
+	}
+
+	if (panel->getVisible())
+	{
+		S32 panel_width = panel->getRect().getWidth();
+		S32 panel_min_width = 0;
+		std::string panel_name = panel->getName();
+		bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width, NULL);
+		S32 possible_shrink_width = panel_width - panel_min_width;
+
+		if (!success)
+		{
+			lldebugs << "Panel was not found to get its min width: " << panel_name << llendl;
+		}
+		// we have some space to free by shrinking the button
+		else if (possible_shrink_width > 0)
+		{
+			// let calculate real width to shrink
+
+			// 1. apply all possible width
+			*required_width += possible_shrink_width;
+
+			// 2. it it is too much... 
+			if (*required_width > 0)
+			{
+				// reduce applied shrunk width to the excessive value.
+				possible_shrink_width -= *required_width;
+				*required_width = 0;
+			}
+			panel->reshape(panel_width - possible_shrink_width, panel->getRect().getHeight());
+
+			lldebugs << "Shrunk panel: " << panel_name
+				<< ", shrunk width: " << possible_shrink_width
+				<< ", rest width to process: " << *required_width
+				<< llendl;
+		}
+	}
+}
+
+
+void LLBottomTray::processExtendButtons(S32* available_width)
+{
+	processExtendButton(RS_BUTTON_GESTURES, available_width);
+
+	if (*available_width > 0)
+	{
+		processExtendButton(RS_BUTTON_CAMERA, available_width);
+	}
+	if (*available_width > 0)
+	{
+		processExtendButton(RS_BUTTON_MOVEMENT, available_width);
+	}
+}
+
+void LLBottomTray::processExtendButton(EResizeState processed_object_type, S32* available_width)
+{
+	LLPanel* panel = mStateProcessedObjectMap[processed_object_type];
+	if (NULL == panel)
+	{
+		lldebugs << "There is no object to process for type: " << processed_object_type << llendl;
+		return;
+	}
+
+	if (!panel->getVisible()) return;
+
+	S32 panel_max_width = mObjectDefaultWidthMap[processed_object_type];
+	S32 panel_width = panel->getRect().getWidth();
+	S32 possible_extend_width = panel_max_width - panel_width;
+
+	if (possible_extend_width > 0)
+	{
+		// let calculate real width to extend
+
+		// 1. apply all possible width
+		*available_width -= possible_extend_width;
+
+		// 2. it it is too much... 
+		if (*available_width < 0)
+		{
+			// reduce applied extended width to the excessive value.
+			possible_extend_width += *available_width;
+			*available_width = 0;
+		}
+		panel->reshape(panel_width + possible_extend_width, panel->getRect().getHeight());
+
+		lldebugs << "Extending panel: " << panel->getName()
+			<< ", extended width: " << possible_extend_width
+			<< ", rest width to process: " << *available_width
+			<< llendl;
+	}
+}
+
 bool LLBottomTray::canButtonBeShown(EResizeState processed_object_type) const
 {
 	bool can_be_shown = mResizeState & processed_object_type;
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 8989816bfec846c5e06ecd44aeaace53bea50a12..97bcc23403a2493793df2b3a543e326f1dee20c5 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -98,7 +98,6 @@ class LLBottomTray
 		, RS_BUTTON_MOVEMENT	= 0x0010
 		, RS_BUTTON_GESTURES	= 0x0020
 		, RS_BUTTON_SPEAK		= 0x0040
-		, RS_RESIZABLE_BUTTONS			= /*RS_BUTTON_SNAPSHOT | */RS_BUTTON_CAMERA | RS_BUTTON_MOVEMENT | RS_BUTTON_GESTURES
 	}EResizeState;
 
 	S32 processWidthDecreased(S32 delta_width);
@@ -107,6 +106,24 @@ class LLBottomTray
 	bool processShowButton(EResizeState shown_object_type, S32* available_width, S32* buttons_required_width);
 	void processHideButton(EResizeState processed_object_type, S32* required_width, S32* buttons_freed_width);
 
+	/**
+	 * Shrinks shown buttons to reduce total taken space.
+	 *
+	 * @param - required_width - width which buttons can use to be shrunk. It is a negative value.
+	 * It is increased on the value processed by buttons.
+	 */
+	void processShrinkButtons(S32* required_width);
+	void processShrinkButton(EResizeState processed_object_type, S32* required_width);
+
+	/**
+	 * Extends shown buttons to increase total taken space.
+	 *
+	 * @param - available_width - width which buttons can use to be extended. It is a positive value.
+	 * It is decreased on the value processed by buttons.
+	 */
+	void processExtendButtons(S32* available_width);
+	void processExtendButton(EResizeState processed_object_type, S32* available_width);
+
 	/**
 	 * Determines if specified by type object can be shown. It should be hidden by shrink before.
 	 *
@@ -140,6 +157,9 @@ class LLBottomTray
 	typedef std::map<EResizeState, LLPanel*> state_object_map_t;
 	state_object_map_t mStateProcessedObjectMap;
 
+	typedef std::map<EResizeState, S32> state_object_width_map_t;
+	state_object_width_map_t mObjectDefaultWidthMap;
+
 protected:
 
 	LLBottomTray(const LLSD& key = LLSD());
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index f9c4a23f12745ba0b53a32b1028da4aa50b770a4..cd5c5edac0c351e5c35ea64eb036b92c2f4a9d54 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -46,6 +46,8 @@
 #include "llfloaterreg.h"
 #include "llmutelist.h"
 
+#include "llsidetray.h"//for blocked objects panel
+
 static LLDefaultChildRegistry::Register<LLChatHistory> r("chat_history");
 
 std::string formatCurrentTime()
@@ -92,6 +94,8 @@ class LLChatHistoryHeader: public LLPanel
 		else if (level == "block")
 		{
 			LLMuteList::getInstance()->add(LLMute(getAvatarId(), mFrom, LLMute::OBJECT));
+
+			LLSideTray::getInstance()->showPanel("panel_block_list_sidetray", LLSD().insert("blocked_to_select", getAvatarId()));
 		}
 	}
 
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index b1dee46d2ef46ee137415d337d255ee6e0411462..997aed4277ce2977832223729e64e3da45a43940 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -175,8 +175,6 @@ void LLNearbyChatToastPanel::init(LLSD& notification)
 
 	caption->getChild<LLTextBox>("sender_name", false)->setText(str_sender , style_params);
 	
-	caption->getChild<LLTextBox>("msg_time", false)->setText(appendTime() , style_params );
-
 	LLChatMsgBox* msg_text = getChild<LLChatMsgBox>("msg_text", false);
 
 
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index 854d02873a7aeaf537a2ea94b545b51121c19eaa..af86274472a7a3afd511f27016f3452d1c4e8cc9 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -161,6 +161,7 @@ BOOL LLFloaterGesture::postBuild()
 
 	getChild<LLUICtrl>("play_btn")->setCommitCallback(boost::bind(&LLFloaterGesture::onClickPlay, this));
 	getChild<LLUICtrl>("stop_btn")->setCommitCallback(boost::bind(&LLFloaterGesture::onClickPlay, this));
+	getChild<LLButton>("activate_btn")->setClickedCallback(boost::bind(&LLFloaterGesture::onActivateBtnClick, this));
 
 	getChild<LLUICtrl>("new_gesture_btn")->setCommitCallback(boost::bind(&LLFloaterGesture::onClickNew, this));
 
@@ -179,7 +180,7 @@ BOOL LLFloaterGesture::postBuild()
 	
 	childSetFocus("gesture_list");
 
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	if (list)
 	{
 		const BOOL ascending = TRUE;
@@ -198,7 +199,7 @@ void LLFloaterGesture::refreshAll()
 {
 	buildGestureList();
 
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	if (!list) return;
 
 	if (mSelectedID.isNull())
@@ -219,7 +220,7 @@ void LLFloaterGesture::refreshAll()
 
 void LLFloaterGesture::buildGestureList()
 {
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	LLCtrlScrollInterface *scroll = childGetScrollInterface("gesture_list");
 
 	if (! (list && scroll)) return;
@@ -347,7 +348,7 @@ void LLFloaterGesture::addGesture(const LLUUID& item_id , LLMultiGesture* gestur
 
 void LLFloaterGesture::onClickInventory()
 {
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	if (!list) return;
 	const LLUUID& item_id = list->getCurrentID();
 
@@ -358,7 +359,7 @@ void LLFloaterGesture::onClickInventory()
 
 void LLFloaterGesture::onClickPlay()
 {
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	if (!list) return;
 	const LLUUID& item_id = list->getCurrentID();
 	if(item_id.isNull()) return;
@@ -396,10 +397,27 @@ void LLFloaterGesture::onClickNew()
 		LLInventoryType::IT_GESTURE, NOT_WEARABLE, PERM_MOVE | PERM_TRANSFER, cb);
 }
 
+void LLFloaterGesture::onActivateBtnClick()
+{
+	LLCtrlListInterface* list = getGestureList();
+	
+	LLUUID gesture_inv_id = list->getSelectedValue();
+	LLGestureManager* gm = LLGestureManager::getInstance();
+	
+	if(gm->isGestureActive(gesture_inv_id))
+	{
+		gm->deactivateGesture(gesture_inv_id);
+	}
+	else
+	{
+		gm->activateGesture(gesture_inv_id);
+	}
+}
+
 
 void LLFloaterGesture::onClickEdit()
 {
-	LLCtrlListInterface *list = childGetListInterface("gesture_list");
+	LLCtrlListInterface *list = getGestureList();
 	if (!list) return;
 	const LLUUID& item_id = list->getCurrentID();
 
diff --git a/indra/newview/llfloatergesture.h b/indra/newview/llfloatergesture.h
index e7819d2a032323f429079b1a61b3d85f3bb795f7..50bef818daa587fbeda99edf2a9d42c7071239eb 100644
--- a/indra/newview/llfloatergesture.h
+++ b/indra/newview/llfloatergesture.h
@@ -77,7 +77,11 @@ class LLFloaterGesture
 	void onClickNew();
 	void onCommitList();
 	void playGesture(LLUUID item_id);
-
+	LLCtrlListInterface* getGestureList() const 
+	{
+		return childGetListInterface("gesture_list");
+	}
+	void onActivateBtnClick();
 protected:
 	LLUUID mSelectedID;
 	LLUUID mGestureFolderID;
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 2c6543d6ca98828842400863168fba1ee1489d41..c2c83191e003d7ace33baacdae891102a3d2111b 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -367,8 +367,6 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)
 	LLNotificationsUI::LLScreenChannel* channel = dynamic_cast<LLNotificationsUI::LLScreenChannel*>
 		(LLNotificationsUI::LLChannelManager::getInstance()->
 											findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
-
-	setCanResize(!docked);
 	
 	LLTransientDockableFloater::setDocked(docked, pop_on_undock);
 
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index 065441b18895a1a5018b6b8f0952ca90340de0ee..e2d500d821e1d7d68e322543368a05c444b9eb19 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -63,7 +63,6 @@ class LLIMFloater : public LLTransientDockableFloater
 	// LLFloater overrides
 	/*virtual*/ void onClose(bool app_quitting);
 	/*virtual*/ void setDocked(bool docked, bool pop_on_undock = true);
-	// override LLFloater's minimization according to EXT-1216
 
 	// Make IM conversion visible and update the message history
 	static LLIMFloater* show(const LLUUID& session_id);
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 8dc7833f6aceb4db012aacec8e4aa91bc4e96781..baddd90d460e00b7d3fce14b7cb9b7ca39a0410e 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -117,6 +117,9 @@ class LLInspectAvatar : public LLInspect
 	bool onVisibleZoomIn();
 	void onClickMuteVolume();
 	void onVolumeChange(const LLSD& data);
+
+	// Is used to determine if "Add friend" option should be enabled in gear menu
+	bool isNotFriend();
 	
 	// Callback for gCacheName to look up avatar name
 	void nameUpdatedCallback(
@@ -208,6 +211,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
 		boost::bind(&LLInspectAvatar::onVisibleFreezeEject, this));	
 	mVisibleCallbackRegistrar.add("InspectAvatar.VisibleZoomIn", 
 		boost::bind(&LLInspectAvatar::onVisibleZoomIn, this));
+	mEnableCallbackRegistrar.add("InspectAvatar.Gear.Enable", boost::bind(&LLInspectAvatar::isNotFriend, this));
 
 	// can't make the properties request until the widgets are constructed
 	// as it might return immediately, so do it in postBuild.
@@ -473,6 +477,11 @@ void LLInspectAvatar::onClickViewProfile()
 	closeFloater();
 }
 
+bool LLInspectAvatar::isNotFriend()
+{
+	return !LLAvatarActions::isFriend(mAvatarID);
+}
+
 bool LLInspectAvatar::onVisibleFindOnMap()
 {
 	return gAgent.isGodlike() || is_agent_mappable(mAvatarID);
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index 0acc67ff5a8a78ac28617ecbb4fa5978505e54b5..2cc5c8335d3e7b9ac23b153e31b759466d520268 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -136,13 +136,13 @@ void LLJoystick::updateSlop()
 
 bool LLJoystick::pointInCircle(S32 x, S32 y) const 
 { 
-	if(this->getLocalRect().mTop!=this->getLocalRect().mRight)
+	if(this->getLocalRect().getHeight() != this->getLocalRect().getWidth())
 	{
 		llwarns << "Joystick shape is not square"<<llendl;
-		return TRUE;
+		return true;
 	}
 	//center is x and y coordinates of center of joystick circle, and also its radius
-	int center = this->getLocalRect().mTop/2;
+	int center = this->getLocalRect().getHeight()/2;
 	bool in_circle = (x - center) * (x - center) + (y - center) * (y - center) <= center * center;
 	return in_circle;
 }
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index e3ba1b8e4adb3b17a3297a9dc64f17ca691e029a..0ee883e221a5fdbd0acda0e25f85dfa63db44909 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -83,6 +83,11 @@ LLFloaterMove::LLFloaterMove(const LLSD& key)
 {
 }
 
+LLFloaterMove::~LLFloaterMove()
+{
+	LLPanelStandStopFlying::getInstance()->reparent(NULL);
+}
+
 // virtual
 BOOL LLFloaterMove::postBuild()
 {
@@ -425,42 +430,15 @@ void LLFloaterMove::showModeButtons(BOOL bShow)
 		return;
 	mModeActionsPanel->setVisible(bShow);
 
-	if (isDocked())
-	{
-		return;
-	}
-
-	updateHeight(bShow);
-}
-
-void LLFloaterMove::updateHeight(bool show_mode_buttons)
-{
-	static bool size_changed = false;
-	static S32 origin_height = getRect().getHeight();
-	LLRect rect = getRect();
-
-	static S32 mode_panel_height = mModeActionsPanel->getRect().getHeight();
-
-	S32 newHeight = getRect().getHeight();
-
-	if (!show_mode_buttons && origin_height == newHeight)
-	{
-		newHeight -= mode_panel_height;
-		size_changed = true;
-	}
-	else if (show_mode_buttons && origin_height > newHeight)
+	if (bShow)
+		LLPanelStandStopFlying::getInstance()->reparent(NULL);
+	else
 	{
-		newHeight += mode_panel_height;
-		size_changed = true;
+		LLPanelStandStopFlying* ssf_panel = LLPanelStandStopFlying::getInstance();
+		ssf_panel->reparent(this);
+		const LLRect& mode_actions_rect = mModeActionsPanel->getRect();
+		ssf_panel->setOrigin(mode_actions_rect.mLeft, mode_actions_rect.mBottom);
 	}
-
-	if (!size_changed)
-		return;
-
-	rect.setLeftTopAndSize(rect.mLeft, rect.mTop, rect.getWidth(), newHeight);
-	reshape(rect.getWidth(), rect.getHeight());
-	setRect(rect);
-	size_changed = false;
 }
 
 //static
@@ -504,14 +482,6 @@ void LLFloaterMove::onOpen(const LLSD& key)
 //virtual
 void LLFloaterMove::setDocked(bool docked, bool pop_on_undock/* = true*/)
 {
-	LLDockableFloater::setDocked(docked, pop_on_undock);
-	bool show_mode_buttons = isDocked() || !gAgent.getFlying();
-
-	if (!isMinimized())
-	{
-		updateHeight(show_mode_buttons);
-	}
-
 	LLTransientDockableFloater::setDocked(docked, pop_on_undock);
 }
 
@@ -535,7 +505,8 @@ void LLFloaterMove::setModeButtonToggleState(const EMovementMode mode)
 /************************************************************************/
 LLPanelStandStopFlying::LLPanelStandStopFlying() :
 	mStandButton(NULL),
-	mStopFlyingButton(NULL)
+	mStopFlyingButton(NULL),
+	mAttached(false)
 {
 	// make sure we have the only instance of this class
 	static bool b = true;
@@ -624,6 +595,45 @@ BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask)
 	return TRUE;
 }
 
+void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view)
+{
+	LLPanel* parent = dynamic_cast<LLPanel*>(getParent());
+	if (!parent)
+	{
+		llwarns << "Stand/stop flying panel parent is unset" << llendl;
+		return;
+	}
+
+	if (move_view != NULL)
+	{
+		llassert(move_view != parent); // sanity check
+	
+		// Save our original container.
+		if (!mOriginalParent.get())
+			mOriginalParent = parent->getHandle();
+
+		// Attach to movement controls.
+		parent->removeChild(this);
+		move_view->addChild(this);
+		// Origin must be set by movement controls.
+		mAttached = true;
+	}
+	else
+	{
+		if (!mOriginalParent.get())
+		{
+			llwarns << "Original parent of the stand / stop flying panel not found" << llendl;
+			return;
+		}
+
+		// Detach from movement controls. 
+		parent->removeChild(this);
+		mOriginalParent.get()->addChild(this);
+		mAttached = false;
+		updatePosition(); // don't defer until next draw() to avoid flicker
+	}
+}
+
 //////////////////////////////////////////////////////////////////////////
 // Private Section
 //////////////////////////////////////////////////////////////////////////
@@ -668,27 +678,14 @@ void LLPanelStandStopFlying::onStopFlyingButtonClick()
  */
 void LLPanelStandStopFlying::updatePosition()
 {
-
 	LLBottomTray* tray = LLBottomTray::getInstance();
-	if (!tray) return;
+	if (!tray || mAttached) return;
 
 	LLButton* movement_btn = tray->getChild<LLButton>(BOTTOM_TRAY_BUTTON_NAME);
 
-	//align centers of a button and a floater
+	// Align centers of the button and the panel.
 	S32 x = movement_btn->calcScreenRect().getCenterX() - getRect().getWidth()/2;
-
-	S32 y = 0;
-
-	LLFloater *move_floater = LLFloaterReg::findInstance("moveview");
-	if (move_floater)
-	{
-		if (move_floater->isDocked())
-		{
-			y = move_floater->getRect().mBottom + getRect().getHeight();
-		}
-	}
-
-	setOrigin(x, y);
+	setOrigin(x, 0);
 }
 
 
diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h
index cee6078ee990530f5fb01ca44325adb68224d40a..2664fe6e401a3b116b678d7c01696c32af74aaca 100644
--- a/indra/newview/llmoveview.h
+++ b/indra/newview/llmoveview.h
@@ -46,11 +46,12 @@ class LLJoystickAgentSlide;
 class LLFloaterMove
 :	public LLTransientDockableFloater
 {
+	LOG_CLASS(LLFloaterMove);
 	friend class LLFloaterReg;
 
 private:
 	LLFloaterMove(const LLSD& key);
-	~LLFloaterMove() {}
+	~LLFloaterMove();
 public:
 
 	/*virtual*/	BOOL	postBuild();
@@ -96,7 +97,6 @@ class LLFloaterMove
 	void updateButtonsWithMovementMode(const EMovementMode newMode);
 	void updatePosition();
 	void showModeButtons(BOOL bShow);
-	void updateHeight(bool show_mode_buttons);
 
 public:
 
@@ -126,6 +126,7 @@ class LLFloaterMove
  */
 class LLPanelStandStopFlying : public LLPanel
 {
+	LOG_CLASS(LLPanelStandStopFlying);
 public:
 	typedef enum stand_stop_flying_mode_t
 	{
@@ -133,6 +134,19 @@ class LLPanelStandStopFlying : public LLPanel
 		SSFM_STOP_FLYING
 	} EStandStopFlyingMode;
 
+	/**
+	 * Attach or detach the panel to/from the movement controls floater.
+	 * 
+	 * Called when the floater gets opened/closed, user sits, stands up or starts/stops flying.
+	 * 
+	 * @param move_view The floater to attach to (not always accessible via floater registry).
+	 *        If NULL is passed, the panel gets reparented to its original container.
+	 *
+	 * @see mAttached
+	 * @see mOriginalParent 
+	 */
+	void reparent(LLFloaterMove* move_view);
+
 	static LLPanelStandStopFlying* getInstance();
 	static void setStandStopFlyingMode(EStandStopFlyingMode mode);
 	static void clearStandStopFlyingMode(EStandStopFlyingMode mode);
@@ -157,6 +171,23 @@ class LLPanelStandStopFlying : public LLPanel
 
 	LLButton* mStandButton;
 	LLButton* mStopFlyingButton;
+
+	/**
+	 * The original parent of the panel.
+	 *  
+	 * Makes it possible to move (reparent) the panel to the movement controls floater and back.
+	 * 
+	 * @see reparent()
+	 */
+	LLHandle<LLPanel> mOriginalParent;
+
+	/**
+	 * True if the panel is currently attached to the movement controls floater.
+	 * 
+	 * @see reparent()
+	 * @see updatePosition()
+	 */
+	bool	mAttached;
 };
 
 
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index cae5c52378b09ce53e6112ade861eb12e7a0ce39..16a47890c3ba878facfbba1b3d1e368735f3dab2 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -89,8 +89,6 @@ BOOL LLNearbyChat::postBuild()
 
 	mChatHistory = getChild<LLChatHistory>("chat_history");
 
-	setCanResize(true);
-
 	if(!LLDockableFloater::postBuild())
 		return false;
 
@@ -98,7 +96,7 @@ BOOL LLNearbyChat::postBuild()
 	{
 		setDockControl(new LLDockControl(
 			LLBottomTray::getInstance()->getNearbyChatBar(), this,
-			getDockTongue(), LLDockControl::LEFT, boost::bind(&LLNearbyChat::getAllowedRect, this, _1)));
+			getDockTongue(), LLDockControl::TOP, boost::bind(&LLNearbyChat::getAllowedRect, this, _1)));
 	}
 
 	return true;
@@ -217,13 +215,6 @@ void	LLNearbyChat::onOpen(const LLSD& key )
 	}
 }
 
-void	LLNearbyChat::setDocked			(bool docked, bool pop_on_undock)
-{
-	LLDockableFloater::setDocked(docked, pop_on_undock);
-
-	setCanResize(!docked);
-}
-
 void LLNearbyChat::setRect	(const LLRect &rect)
 {
 	LLDockableFloater::setRect(rect);
@@ -233,12 +224,3 @@ void LLNearbyChat::getAllowedRect(LLRect& rect)
 {
 	rect = gViewerWindow->getWorldViewRectRaw();
 }
-void LLNearbyChat::setMinimized	(BOOL minimize)
-{
-	if(minimize && !isDocked())
-	{
-		setVisible(FALSE);
-	}
-	LLDockableFloater::setMinimized(minimize);
-}
-
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 1f4e57cf89e8111b8c9a8519a8098fe6fb4aead0..561c2d3677699f16b2c272d933cc0c1d2cc51b92 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -51,12 +51,9 @@ class LLNearbyChat: public LLDockableFloater
 	void	onNearbyChatContextMenuItemClicked(const LLSD& userdata);
 	bool	onNearbyChatCheckContextMenuItem(const LLSD& userdata);
 
-	void	setDocked			(bool docked, bool pop_on_undock = true);
-
 	/*virtual*/ void	onOpen	(const LLSD& key);
 
 	virtual void setRect		(const LLRect &rect);
-	virtual void setMinimized	(BOOL minimize);
 
 private:
 	virtual void    applySavedVariables();
diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp
index 04b4226f82f8dd7bde746d338ae79fd06ff022ec..10b90b08d76b7b4eec62e2d207423ea14e8e7802 100644
--- a/indra/newview/llpanelpicks.cpp
+++ b/indra/newview/llpanelpicks.cpp
@@ -230,6 +230,8 @@ void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
 			updateButtons();
 		}
 	}
+	if(!mPicksList->size() && !mClassifiedsList->size())
+		childSetVisible("empty_picks_panel_text", true);
 }
 
 LLPickItem* LLPanelPicks::getSelectedPickItem()
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index eb10d97b371ef11eaf2d6e56d0cf12e15fccd576..84232f20d1a53c8b744e9ff781a29511f0be74e4 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -80,7 +80,6 @@ static const std::string TELEPORT_HISTORY_INFO_TYPE	= "teleport_history";
 // Helper functions
 static bool is_agent_in_selected_parcel(LLParcel* parcel);
 static void onSLURLBuilt(std::string& slurl);
-static void setAllChildrenVisible(LLView* view, BOOL visible);
 
 //Observer classes
 class LLPlacesParcelObserver : public LLParcelObserver
@@ -700,8 +699,6 @@ void LLPanelPlaces::onBackButtonClicked()
 
 void LLPanelPlaces::togglePickPanel(BOOL visible)
 {
-	setAllChildrenVisible(this, !visible);
-
 	if (mPickPanel)
 		mPickPanel->setVisible(visible);
 }
@@ -911,16 +908,3 @@ static void onSLURLBuilt(std::string& slurl)
 
 	LLNotifications::instance().add("CopySLURL", args);
 }
-
-static void setAllChildrenVisible(LLView* view, BOOL visible)
-{
-	const LLView::child_list_t* children = view->getChildList();
-	for (LLView::child_list_const_iter_t child_it = children->begin(); child_it != children->end(); ++child_it)
-	{
-		LLView* child = *child_it;
-		if (child->getParent() == view)
-		{
-			child->setVisible(visible);
-		}
-	}
-}
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index eada3879456eddb085ae715e8e80867ef8b6fa72..04ecf769d5514405252d6cd347b096a51317eaa7 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -332,7 +332,9 @@ void LLSysWellWindow::reshapeWindow()
 		new_window_height = MAX_WINDOW_HEIGHT;
 	}
 	S32 newY = curRect.mTop + new_window_height - curRect.getHeight();
-	curRect.setLeftTopAndSize(curRect.mLeft, newY, MIN_WINDOW_WIDTH, new_window_height);
+	S32 newWidth = curRect.getWidth() < MIN_WINDOW_WIDTH ? MIN_WINDOW_WIDTH
+			: curRect.getWidth();
+	curRect.setLeftTopAndSize(curRect.mLeft, newY, newWidth, new_window_height);
 	reshape(curRect.getWidth(), curRect.getHeight(), TRUE);
 	setRect(curRect);
 
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index f82573f46cd4400af4af66b1acfab7b5a98e0a05..d1bdcb13543da05606a3bd8867331aa842411312 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -40,7 +40,7 @@
 #include "lliconctrl.h"
 #include "llinventoryfunctions.h"
 #include "llnotify.h"
-#include "lltextbox.h"
+#include "llviewertexteditor.h"
 
 #include "lluiconstants.h"
 #include "llui.h"
@@ -54,7 +54,7 @@
 #include "llfloaterinventory.h"
 #include "llinventorytype.h"
 
-const S32 LLToastGroupNotifyPanel::DEFAULT_MESSAGE_MAX_LINE_COUNT	= 4;
+const S32 LLToastGroupNotifyPanel::DEFAULT_MESSAGE_MAX_LINE_COUNT	= 7;
 
 LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification)
 :	LLToastPanel(notification),
@@ -84,11 +84,6 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
 	//message body
 	const std::string& message = payload["message"].asString();
 
-
-	LLTextBox* pSubjectText = getChild<LLTextBox>("subject");
-	pSubjectText->setValue(subject);
-
-	LLTextBox* pDateTimeText = getChild<LLTextBox>("datetime");
 	std::string timeStr = "["+LLTrans::getString("UTCTimeWeek")+"],["
 							+LLTrans::getString("UTCTimeDay")+"] ["
 							+LLTrans::getString("UTCTimeMth")+"] ["
@@ -102,20 +97,23 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
 	LLSD substitution;
 	substitution["datetime"] = (S32) notice_date.secondsSinceEpoch();
 	LLStringUtil::format(timeStr, substitution);
-	pDateTimeText->setValue(timeStr);
 
-	LLTextBox* pMessageText = getChild<LLTextBox>("message");
-
-	//If message is empty let it be invisible and not take place at the panel
-	if(message.size() != 0)
-	{
-		pMessageText->setVisible(TRUE);
-		pMessageText->setValue(message);
-	}
-	else
-	{
-		pMessageText->setVisible(FALSE);
-	}
+	LLViewerTextEditor* pMessageText = getChild<LLViewerTextEditor>("message");
+	pMessageText->clear();
+
+	LLStyle::Params style;
+	LLFontGL* subject_font = LLFontGL::getFontByName(getString("subject_font"));
+	if (subject_font) 
+		style.font = subject_font;
+	pMessageText->appendText(subject, FALSE, style);
+
+	LLFontGL* date_font = LLFontGL::getFontByName(getString("date_font"));
+	if (date_font)
+		style.font = date_font;
+	pMessageText->appendText(timeStr + "\n", TRUE, style);
+	
+	style.font = pMessageText->getDefaultFont();
+	pMessageText->appendText(message, TRUE, style);
 
 	//attachment
 	BOOL hasInventory = payload["inventory_offer"].isDefined();
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 7b35125b5b8f4d5855aa63d281a6347c8c69ea82..615eb1db9a7ef6b0141830591dd9c2ff012c2e00 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1566,8 +1566,6 @@ void LLViewerWindow::initWorldUI()
 
 	LLPanel* panel_ssf_container = getRootView()->getChild<LLPanel>("stand_stop_flying_container");
 	LLPanelStandStopFlying* panel_stand_stop_flying	= LLPanelStandStopFlying::getInstance();
-	panel_stand_stop_flying->setShape(panel_ssf_container->getLocalRect());
-	panel_stand_stop_flying->setFollowsAll();
 	panel_ssf_container->addChild(panel_stand_stop_flying);
 	panel_ssf_container->setVisible(TRUE);
 
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index ae32ec7d117e41768f2035706b7ea7f72a0f1705..21054dacd0b7a76a0828b55a9a2360e30f40ab9e 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -33,6 +33,7 @@
 #include "llviewerprecompiledheaders.h"
 
 #include "llagent.h"
+#include "llfloatercall.h"
 #include "llfloaterreg.h"
 #include "llimview.h"
 #include "llnotifications.h"
@@ -408,9 +409,14 @@ void LLVoiceChannel::doSetState(const EState& new_state)
 
 void LLVoiceChannel::toggleCallWindowIfNeeded(EState state)
 {
+	LLFloaterCall* floater = dynamic_cast<LLFloaterCall*>(LLFloaterReg::getInstance("voice_call", mSessionID));
+	if (!floater)
+		return;
+
 	if (state == STATE_CONNECTED)
 	{
-		LLFloaterReg::showInstance("voice_call", mSessionID);
+		floater->init(mSessionID);
+		floater->openFloater(mSessionID);
 	}
 	// By checking that current state is CONNECTED we make sure that the call window
 	// has been shown, hence there's something to hide. This helps when user presses
@@ -418,7 +424,8 @@ void LLVoiceChannel::toggleCallWindowIfNeeded(EState state)
 	// *TODO: move this check to LLFloaterCall?
 	else if (state == STATE_HUNG_UP && mState == STATE_CONNECTED)
 	{
-		LLFloaterReg::hideInstance("voice_call", mSessionID);
+		floater->reset();
+		floater->closeFloater();
 	}
 }
 
diff --git a/indra/newview/skins/default/xui/en/floater_gesture.xml b/indra/newview/skins/default/xui/en/floater_gesture.xml
index a3ac87820280ff57f6d81090b227d5bfd62f7291..21d292847ab7dfe75b08da53838484ee27efd5ff 100644
--- a/indra/newview/skins/default/xui/en/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_gesture.xml
@@ -83,7 +83,20 @@
                  tool_tip="Make new gesture"
                  top_delta="0"
                  width="18" />
-                <button
+              <button
+                 follows="bottom|left"
+                 font="SansSerifBigBold"
+                 height="10"
+                 image_hover_selected="Activate_Checkmark"
+                 image_selected="Activate_Checkmark"
+                 image_unselected="Activate_Checkmark"
+                 layout="topleft"
+                 left_pad="5"
+                 name="activate_btn"
+                 tool_tip="Activate/Deactivate selected gesture"
+                 top="10"
+                 width="10" />
+              <button
                  follows="bottom|right"
                  font="SansSerifBigBold"
                  height="18"
diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml
index 9e2dbc881ff5c0aeda44fe1c30106c3005a10bc8..4792a1a476026a246f46bc9cbbe804df18098adf 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -8,6 +8,7 @@
  left="0"
  name="panel_im"
  top="0"
+ can_close="false"
  can_dock="true"
  can_minimize="false"
  visible="true"
diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
index 4f2d74b41775047c174e4b1bb953dae31011429c..69b015a727ed0b5fc80099a482f38eebcf9923a2 100644
--- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
@@ -3,7 +3,7 @@
  legacy_header_height="18"
  can_minimize="false"
  can_tear_off="false"
- can_resize="false"
+ can_resize="true"
  can_drag_on_left="false"
  can_close="false"
  can_dock="true"
diff --git a/indra/newview/skins/default/xui/en/floater_sys_well.xml b/indra/newview/skins/default/xui/en/floater_sys_well.xml
index e1f07a49e78604691e765280b13e720a995145be..be6d63716c521f9dad6025576fc996b15bb5c197 100644
--- a/indra/newview/skins/default/xui/en/floater_sys_well.xml
+++ b/indra/newview/skins/default/xui/en/floater_sys_well.xml
@@ -15,7 +15,7 @@
  height="23"
  can_minimize="true"
  can_tear_off="false"
- can_resize="false"
+ can_resize="true"
  can_drag_on_left="false"
  can_close="false"
  can_dock="true"
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index 9e35c95d45a8e76daa75d028d91f126e7def1e7f..14a4949df7ff08d4cd3912250e0ebfe90dcec437 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -10,7 +10,7 @@
   <layout_stack border_size="0"
                 follows="all"
                 mouse_opaque="false"
-                height="772"
+                height="768"
                 name="menu_stack"
                 orientation="vertical"
                 top="0">
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
index 590621062c2bb79654994092e3b2e7fc5e9c7e7f..a731996a1a26713544d06d6d9de6c5c23a3ab156 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_avatar_gear.xml
@@ -17,6 +17,8 @@
    name="add_friend">
     <menu_item_call.on_click
      function="InspectAvatar.AddFriend"/>
+    <menu_item_call.on_enable
+     function="InspectAvatar.Gear.Enable"/>
   </menu_item_call>
   <menu_item_call
    label="IM"
diff --git a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
index 5c8a8ee2081ad20d78d6066edc58d5e8d3492240..3842c2a8db833e48184703e5ae7ba5965e67ddcf 100644
--- a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml
@@ -61,6 +61,7 @@
      layout="topleft"
      left_delta="0"
      name="Block object by name..."
+     tool_tip="Pick an object to block by name"
      top_pad="4"
      width="210" >
         <button.commit_callback
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index a902f50582431ce571deb58fa79fdc83fb3bcd3b..d2933c0c0eac0925b9fd1cc43ca1faa498963ec8 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -94,7 +94,7 @@
          min_height="28"
          width="82"
          top_delta="0"
-         min_width="82"
+         min_width="52"
          name="gesture_panel"
          user_resize="false">
          <gesture_combo_box
@@ -105,9 +105,13 @@
           name="Gesture"
           left="0"
           top="3"
-         use_ellipses="true"
           width="82"
-          tool_tip="Shows/hides gestures"/>
+          tool_tip="Shows/hides gestures">
+             <gesture_combo_box.drop_down_button
+              font="SansSerifSmall"
+              pad_right="10" 
+              use_ellipses="true" />
+         </gesture_combo_box>
         </layout_panel>
 		 <icon
          auto_resize="false"
@@ -131,7 +135,7 @@
          name="movement_panel"
          user_resize="false"
          width="80"
-         min_width="80">
+         min_width="49">
             <button
              follows="left|right"
              height="23"
@@ -167,7 +171,7 @@
          height="28"
          layout="topleft"
          min_height="28"
-         min_width="80"
+         min_width="49"
          name="cam_panel"
          user_resize="false"
          width="80">
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 01917052d18c61f6aa614da805c5f8ba1df1de62..2b29796f0a1b4571260af2067c1149bf9db9b29e 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_item.xml
@@ -34,12 +34,12 @@
 		use_ellipses="true"
         	mouse_opaque="true"
 		name="sender_name"
-        	width="175">
+        	width="150">
 	      Jerry Knight
     	</text>
-   <!-- 	<icon top="22" left="170" width="15" height="15" follows="top|right"
+   <!-- 	<icon top="22" left="215" width="15" height="15" follows="top|right"
       		image_name="icn_voice-pvtfocus.tga" visible="false" name="msg_inspector" />-->
-    	<!--<icon top="22" left="190" width="10" height="10" follows="top|right"
+    	<!--<icon top="22" left="215" width="10" height="10" follows="top|right"
       		image_name="speaking_indicator.tga"	name="msg_icon"/>-->
 	 <text
             font="SansSerifSmall"
diff --git a/indra/newview/skins/default/xui/en/panel_group_notify.xml b/indra/newview/skins/default/xui/en/panel_group_notify.xml
index 984a799b41a8ac8991fc18ef477dd355c820040d..d22d58329c476e22bb4d7c4a716e3e5036920639 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notify.xml
@@ -3,7 +3,7 @@
  background_visible="true"
  bevel_style="in"
  bg_alpha_color="0 0 0 0"
- height="135"
+ height="90"
  label="instant_message"
  layout="topleft"
  left="0"
@@ -12,7 +12,13 @@
  width="305">
     <string
      name="message_max_lines_count"
-     value="4" />
+     value="7" />
+    <string
+     name="subject_font"
+     value="SANSSERIF_BIG" />
+    <string
+     name="date_font"
+     value="SANSSERIF" />
     <panel
      background_visible="true"
      bevel_style="in"
@@ -47,46 +53,27 @@
          value="Sender Name / Group Name"
          width="230" />
     </panel>
-    <text
-     follows="top"
-     font="SansSerifBig"
-     height="20"
-     layout="topleft"
-     left="25"
-     name="subject"
-     text_color="GroupNotifyTextColor"
-     top="40"
-     use_ellipses="true"
-     value="subject"
-     width="270"
-     wrap="true" />
-    <text
-     follows="top"
-     font="SansSerif"
-     height="20"
-     layout="topleft"
-     left="25"
-     name="datetime"
-     text_color="GroupNotifyTextColor"
-     top="80"
-     use_ellipses="true"
-     value="datetime"
-     width="270"
-     wrap="true" />
-    <text
+    <text_editor
+     allow_html="true"
+     enabled="true"
      follows="left|top|bottom|right"
      height="0"
      layout="topleft"
      left="25"
+     max_length="2147483647"
      name="message"
+     parse_highlights="true"
+     read_only="true"
      text_color="GroupNotifyTextColor"
-     top="100"
+     top="40"
+     type="string"
      use_ellipses="true"
      value="message"
-     width="270"
-     wrap="true" />
+     width="270" 
+	 word_wrap="true" >
+    </text_editor>
     <icon
-     bottom="122"
+     bottom="60"
      follows="left|bottom|right"
      height="15"
      layout="topleft"
@@ -95,7 +82,7 @@
      name="attachment_icon"
      width="15" />
     <text
-     bottom="122"
+     bottom="60"
      follows="left|bottom|right"
      font="SansSerif"
      height="15"
@@ -104,9 +91,10 @@
      name="attachment"
      text_color="GroupNotifyTextColor"
      value="Attachment"
-     width="280" />
+     use_ellipses="true"
+     width="250" />
     <button
-     bottom="130"
+     bottom="85"
      follows="bottom"
      height="20"
      label="OK"
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 9cfbed432ae38d52ea7fad7797dbabf9053ace91..962dad33633750ae2b42756385b78a3df4177a58 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -14,7 +14,18 @@
  <string
   name="no_classifieds"
   value="No Classifieds" />
-     
+ <text
+  type="string"
+  follows="all"
+  height="535"
+  layout="topleft"
+  left="6"
+  name="empty_picks_panel_text"
+  top="10"
+  visible="false" 
+  width="313">
+   There are no any picks/classifieds here
+ </text>
  <accordion
   follows="all"
   height="465"
diff --git a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
index 566fc95230b3a7cbd52aa00df9b1e64f00f793e8..98390758629ebed7bd10c2265463b0640bae72bf 100644
--- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
@@ -7,6 +7,24 @@
  layout="topleft"
  name="home_tab"
  width="333">
+  <scroll_container
+   color="DkGray"
+   follows="all"
+   layout="topleft"
+   left="0"
+   name="profile_scroll"
+   opaque="true"
+   height="560"
+   width="333"
+   top="0">
+  <panel
+   background_visible="true"
+   height="560"
+   layout="topleft"
+   name="profile_scroll_panel"
+   top="0"
+   left="0"
+   width="311">
     <panel
      background_visible="true"
      bg_alpha_color="DkGray2"
@@ -242,4 +260,6 @@
             Browse your inventory.
         </text>
     </panel>
+  </panel>
+  </scroll_container>
 </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index 1f67a0a7328bbf6eeda16fd0bc0dffad078f9377..4ab6175805adcf3194eba88d1a8a43197848051f 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -26,7 +26,7 @@
      name="selected_icon"
      top="0"
      visible="false"
-     width="320" />
+     width="380" />
     <icon
      height="16"
      follows="top|left"
@@ -46,7 +46,7 @@
      text_color="white"
      top="4"
      value="..."
-     width="242" />
+     width="330" />
     <button
      follows="right"
      height="20"