diff --git a/indra/llui/llscrolllistctrl.h b/indra/llui/llscrolllistctrl.h
index 1983891649432aa1fa653b3dd2b90fdf36db6555..e819c5fdea21cd4cfd72c6699a92c2a60a907530 100644
--- a/indra/llui/llscrolllistctrl.h
+++ b/indra/llui/llscrolllistctrl.h
@@ -96,8 +96,6 @@ class LLScrollListCtrl : public LLUICtrl, public LLEditMenuHandler,
 	};
 
 	
-	//typedef boost::signals2::signal<void (S32,const LLScrollListItem*,const LLScrollListItem*),maximum<S32>> sort_signal_t;
-	//typedef boost::signals2::signal<void (S32,const LLScrollListItem*,const LLScrollListItem*)> sort_signal_t;
 	typedef boost::signals2::signal<S32 (S32,const LLScrollListItem*,const LLScrollListItem*),maximum<S32> > sort_signal_t;
 	
 	struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index cafb7c45f64b8920f14a3def5765d53d88891284..85ae13a889694d249162679cc5fc8be9a7b9a191 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -955,7 +955,7 @@ void LLTabContainer::addTabPanel(const TabPanelParams& panel)
 	LLRect tab_panel_rect;
 	if (!getTabsHidden() && mIsVertical)
 	{
-		tab_panel_rect = LLRect(mMinTabWidth + (LLPANEL_BORDER_WIDTH * 2) + tabcntrv_pad, 
+		tab_panel_rect = LLRect(mMinTabWidth + mRightTabBtnOffset + (LLPANEL_BORDER_WIDTH * 2) + tabcntrv_pad,
 								getRect().getHeight() - LLPANEL_BORDER_WIDTH,
 								getRect().getWidth() - LLPANEL_BORDER_WIDTH,
 								LLPANEL_BORDER_WIDTH);
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index 16b13d9218b1c88683cebff6ed65ae0ad3f4950b..be8b2363ad7e81811708900b8faa5ac56fd29704 100644
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -46,7 +46,17 @@
 #include <boost/regex.hpp>
 #include <boost/regex/v4/match_results.hpp>
 
+#if LL_MSVC
+// disable warning about boost::lexical_cast unreachable code
+// when it fails to parse the string
+#pragma warning (disable:4702)
+#endif
+
 #include <boost/date_time/gregorian/gregorian.hpp>
+#if LL_MSVC
+#pragma warning(pop)   // Restore all warnings to the previous state
+#endif
+
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <boost/date_time/local_time_adjustor.hpp>
 
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index 3c390c0281470b4ceb7274c92c468fdc36ece50c..a211adc79d4f9d82529bf93c5579b885aa88ba86 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -34,6 +34,7 @@
 
 #include "llnearbychathandler.h"
 
+#include "llbottomtray.h"
 #include "llchatitemscontainerctrl.h"
 #include "llnearbychat.h"
 #include "llrecentpeople.h"
@@ -319,9 +320,9 @@ LLNearbyChatHandler::~LLNearbyChatHandler()
 void LLNearbyChatHandler::initChannel()
 {
 	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD());
+	LLView* chat_box = LLBottomTray::getInstance()->getChildView("chat_box");
 	S32 channel_right_bound = nearby_chat->getRect().mRight;
-	S32 channel_width = nearby_chat->getRect().mRight; 
-	mChannel->init(channel_right_bound - channel_width, channel_right_bound);
+	mChannel->init(chat_box->getRect().mLeft, channel_right_bound);
 }
 
 
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index cc3101539aca74c70fc726f45476958067d1279d..624501887121019f141600c8f33a414f12aca8e7 100644
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -84,7 +84,6 @@ class LLPanelGroupGeneral : public LLPanelGroupTab
 	static void openProfile(void* data);
 
 	S32		sortMembersList(S32,const LLScrollListItem*,const LLScrollListItem*);
-	//void		sortMembersList(S32 column);
 
     static bool joinDlgCB(const LLSD& notification, const LLSD& response);
 
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 02bde51fb697783d64462d2f28e90a29769f6240..15c72fdef1a22e96a875a9121b201c0345ecb710 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -4422,35 +4422,22 @@ bool visible_take_object()
 	return !is_selection_buy_not_take() && enable_take();
 }
 
+bool tools_visible_buy_object()
+{
+	return is_selection_buy_not_take();
+}
+
+bool tools_visible_take_object()
+{
+	return !is_selection_buy_not_take();
+}
+
 class LLToolsEnableBuyOrTake : public view_listener_t
 {
 	bool handleEvent(const LLSD& userdata)
 	{
 		bool is_buy = is_selection_buy_not_take();
 		bool new_value = is_buy ? enable_buy_object() : enable_take();
-
-		// Update label
-		std::string label;
-		std::string buy_text;
-		std::string take_text;
-		std::string param = userdata.asString();
-		std::string::size_type offset = param.find(",");
-		if (offset != param.npos)
-		{
-			buy_text = param.substr(0, offset);
-			take_text = param.substr(offset+1);
-		}
-		if (is_buy)
-		{
-			label = buy_text;
-		}
-		else
-		{
-			label = take_text;
-		}
-		gMenuHolder->childSetText("Pie Object Take", label);
-		gMenuHolder->childSetText("Menu Object Take", label);
-
 		return new_value;
 	}
 };
@@ -7802,12 +7789,11 @@ void initialize_menus()
 	view_listener_t::addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink");
 	view_listener_t::addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake");
 	enable.add("Tools.EnableTakeCopy", boost::bind(&enable_object_take_copy));
+	enable.add("Tools.VisibleBuyObject", boost::bind(&tools_visible_buy_object));
+	enable.add("Tools.VisibleTakeObject", boost::bind(&tools_visible_take_object));
 	view_listener_t::addMenu(new LLToolsEnableSaveToInventory(), "Tools.EnableSaveToInventory");
 	view_listener_t::addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.EnableSaveToObjectInventory");
 
-	/*view_listener_t::addMenu(new LLToolsVisibleBuyObject(), "Tools.VisibleBuyObject");
-	view_listener_t::addMenu(new LLToolsVisibleTakeObject(), "Tools.VisibleTakeObject");*/
-
 	// Help menu
 	// most items use the ShowFloater method
 
diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml
index 7aa8e23e76da566c598eaf066db9f03176b1195c..d7a7daf30ccbb04476ce08a3c9f7d7b23bccde28 100644
--- a/indra/newview/skins/default/xui/en/floater_preferences.xml
+++ b/indra/newview/skins/default/xui/en/floater_preferences.xml
@@ -46,6 +46,7 @@
      tab_group="1"
      tab_position="left"
      tab_width="115"
+     tab_padding_right="5"
      top="21"
      width="620">
         <panel
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
index d66818e91a45fcf4e784019a8fc8b5a13d55aad3..9436b2cd7311b07ecab16fb9d486dccc330dc160 100644
--- a/indra/newview/skins/default/xui/en/menu_object.xml
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
@@ -124,16 +124,28 @@
     </menu_item_call>
     </context_menu>
    <menu_item_separator layout="topleft" />
-       <menu_item_call
-     enabled="false"
+   <menu_item_call
+    label="Buy"
+    layout="topleft"
+    name="Pie Object Bye">
+      <menu_item_call.on_click
+       function="Tools.BuyOrTake"/>
+      <menu_item_call.on_visible
+       function="Tools.VisibleBuyObject"/>
+      <menu_item_call.on_enable
+       function="Tools.EnableBuyOrTake"/>
+   </menu_item_call>
+   <menu_item_call
      label="Take"
+     layout="topleft"
      name="Pie Object Take">
-        <menu_item_call.on_click
-         function="Tools.BuyOrTake" />
-        <menu_item_call.on_enable
-         function="Tools.EnableBuyOrTake"
-         parameter="Buy,Take" />
-    </menu_item_call>
+      <menu_item_call.on_click
+       function="Tools.BuyOrTake"/>
+      <menu_item_call.on_visible
+       function="Tools.VisibleTakeObject"/>
+      <menu_item_call.on_enable
+       function="Tools.EnableBuyOrTake"/>
+   </menu_item_call>
    <menu_item_call
    enabled="false"
    label="Take Copy"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 4c4867b862fbb26b8aac618eb0d7752ef9bc7f16..158e764eaed1b6e111f0aa40745ce583cfc96df3 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -719,16 +719,26 @@
          name="Object"
          tear_off="true">
           <menu_item_call
-			 label="Buy"
-			 layout="topleft"
-			 name="Menu Object Take"
-			 visible="true">
-			<menu_item_call.on_click
-               function="Tools.BuyOrTake" />
-			<menu_item_call.on_enable
-               function="Tools.EnableBuyOrTake"
-               name="EnableBuyOrTake"
-               parameter="Buy,Take" />
+             label="Buy"
+             layout="topleft"
+             name="Menu Object Buy">
+            <menu_item_call.on_click
+               function="Tools.BuyOrTake"/>
+            <menu_item_call.on_visible
+               function="Tools.VisibleBuyObject"/>
+            <menu_item_call.on_enable
+               function="Tools.EnableBuyOrTake"/>
+          </menu_item_call>
+          <menu_item_call
+             label="Take"
+             layout="topleft"
+             name="Menu Object Take">
+            <menu_item_call.on_click
+               function="Tools.BuyOrTake"/>
+            <menu_item_call.on_visible
+               function="Tools.VisibleTakeObject"/>
+            <menu_item_call.on_enable
+               function="Tools.EnableBuyOrTake"/>
           </menu_item_call>
           <menu_item_call
 			 label="Take Copy"