diff --git a/indra/llcommon/llfasttimer.h b/indra/llcommon/llfasttimer.h
index 5058a2e772d33cc67b86c03c2b1668041132df73..85c78198dc71303fe3eff127d0bf1a1c814c7cf8 100644
--- a/indra/llcommon/llfasttimer.h
+++ b/indra/llcommon/llfasttimer.h
@@ -77,7 +77,7 @@ inline U32 get_cpu_clock_count_64()
 {																	
 	U64 x;
 	__asm__ volatile (".byte 0x0f, 0x31": "=A"(x));
-	return x >> 8;
+	return x;
 }
 #endif
 
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 21f3f15739061fb280407f3bf42c1463b0fdc6f6..c172a2b714f88ceb8a1bd6513cd4ab564a720a0a 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -99,7 +99,7 @@ const S32 TEAROFF_SEPARATOR_HEIGHT_PIXELS = 10;
 const S32 MENU_ITEM_PADDING = 4;
 
 const std::string BOOLEAN_TRUE_PREFIX( "\xE2\x9C\x94" ); // U+2714 HEAVY CHECK MARK
-const std::string BRANCH_SUFFIX( ">" );
+const std::string BRANCH_SUFFIX( "\xE2\x96\xB6" ); // U+25B6 BLACK RIGHT-POINTING TRIANGLE
 const std::string ARROW_UP  ("^^^^^^^");
 const std::string ARROW_DOWN("vvvvvvv");
 
diff --git a/indra/llui/lluictrl.cpp b/indra/llui/lluictrl.cpp
index f016c0af89ac6dc7d6bf5179bedb8fa631a13382..3ade46d367fe68d4558f1852e73c31409cfa973c 100644
--- a/indra/llui/lluictrl.cpp
+++ b/indra/llui/lluictrl.cpp
@@ -868,14 +868,6 @@ bool LLUICtrl::findHelpTopic(std::string& help_topic_out)
 
 		if (panel)
 		{
-			// does the panel have an active tab with a help topic?
-			LLPanel *tab = panel->childGetVisibleTabWithHelp();
-			if (tab)
-			{
-				help_topic_out = tab->getHelpTopic();
-				return true; // success (tab)
-			}
-
 			// does the panel have a sub-panel with a help topic?
 			LLPanel *subpanel = panel->childGetVisiblePanelWithHelp();
 			if (subpanel)
@@ -884,6 +876,14 @@ bool LLUICtrl::findHelpTopic(std::string& help_topic_out)
 				return true; // success (subpanel)
 			}
 
+			// does the panel have an active tab with a help topic?
+			LLPanel *tab = panel->childGetVisibleTabWithHelp();
+			if (tab)
+			{
+				help_topic_out = tab->getHelpTopic();
+				return true; // success (tab)
+			}
+
 			// otherwise, does the panel have a help topic itself?
 			if (!panel->getHelpTopic().empty())
 			{
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 5ea253709cf10ead3f79a71f3115d1a6642ce836..297bcfd1df4c0802840af8908532c465ffd68d95 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -43,7 +43,7 @@
 #include "llcallingcard.h"
 #include "llchannelmanager.h"
 #include "llconsole.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloatercamera.h"
 #include "llfloatercustomize.h"
 #include "llfloaterreg.h"
@@ -5697,10 +5697,10 @@ void LLAgent::processScriptControlChange(LLMessageSystem *msg, void **)
 			}
 		
 			// Any control taken?  If so, might be first time.
-			if (total_count > 0)
-			{
-				LLFirstUse::useOverrideKeys();
-			}
+			//if (total_count > 0)
+			//{
+				//LLFirstUse::useOverrideKeys();
+			//}
 		}
 		else
 		{
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 10a2dd132ad965ddc812d0be00dfd1425732fa4f..c21cdf95085ea62c67f1f0cfda8345c1f34fddbd 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -1364,15 +1364,15 @@ void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name,
 	} 
 }
 
-class LLAutoRenameFolder: public LLInventoryCallback
+class LLShowCreatedOutfit: public LLInventoryCallback
 {
 public:
-	LLAutoRenameFolder(LLUUID& folder_id):
+	LLShowCreatedOutfit(LLUUID& folder_id):
 		mFolderID(folder_id)
 	{
 	}
 
-	virtual ~LLAutoRenameFolder()
+	virtual ~LLShowCreatedOutfit()
 	{
 		LLSD key;
 		LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
@@ -1382,13 +1382,15 @@ class LLAutoRenameFolder: public LLInventoryCallback
 		{
 			outfit_panel->getRootFolder()->clearSelection();
 			outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE);
-			outfit_panel->getRootFolder()->setNeedsAutoRename(TRUE);
 		}
 		LLAccordionCtrlTab* tab_outfits = outfit_panel ? outfit_panel->findChild<LLAccordionCtrlTab>("tab_outfits") : 0;
 		if (tab_outfits && !tab_outfits->getDisplayChildren())
 		{
 			tab_outfits->changeOpenClose(tab_outfits->getDisplayChildren());
 		}
+
+		LLAppearanceManager::instance().updateIsDirty();
+		LLAppearanceManager::instance().updatePanelOutfitName("");
 	}
 	
 	virtual void fire(const LLUUID&)
@@ -1413,10 +1415,10 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
 		LLFolderType::FT_OUTFIT,
 		new_folder_name);
 
-	LLPointer<LLInventoryCallback> cb = new LLAutoRenameFolder(folder_id);
+	LLPointer<LLInventoryCallback> cb = new LLShowCreatedOutfit(folder_id);
 	LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb);
-	LLAppearanceManager::instance().createBaseOutfitLink(folder_id, NULL);
-	
+	LLAppearanceManager::instance().createBaseOutfitLink(folder_id, cb);
+
 	return folder_id;
 }
 
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 4d4a89bcd432e4efab9323ffafde5f97917a1760..748d8bdfbf090af0c14a23922631cb9911f9b999 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -392,6 +392,21 @@ const LLViewerInventoryItem* LLAppearanceManager::getBaseOutfitLink()
 	return NULL;
 }
 
+bool LLAppearanceManager::getBaseOutfitName(std::string& name)
+{
+	const LLViewerInventoryItem* outfit_link = getBaseOutfitLink();
+	if(outfit_link)
+	{
+		const LLViewerInventoryCategory *cat = outfit_link->getLinkedCategory();
+		if (cat)
+		{
+			name = cat->getName();
+			return true;
+		}
+	}
+	return false;
+}
+
 // Update appearance from outfit folder.
 void LLAppearanceManager::changeOutfit(bool proceed, const LLUUID& category, bool append)
 {
@@ -630,6 +645,7 @@ void LLAppearanceManager::createBaseOutfitLink(const LLUUID& category, LLPointer
 							LLAssetType::AT_LINK_FOLDER, link_waiter);
 		new_outfit_name = catp->getName();
 	}
+	
 	updatePanelOutfitName(new_outfit_name);
 }
 
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index b9549689988658078a5d41eae8e7e96c37ff9378..20745b70e4b23eb6dea73ecfd8a2c8294d1393c1 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -63,6 +63,7 @@ class LLAppearanceManager: public LLSingleton<LLAppearanceManager>
 
 	// Finds the folder link to the currently worn outfit
 	const LLViewerInventoryItem *getBaseOutfitLink();
+	bool getBaseOutfitName(std::string &name);
 
 	// Update the displayed outfit name in UI.
 	void updatePanelOutfitName(const std::string& name);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index fb1bded7959638c978ff5595d2f1a7c243066b3a..067369d54df9ca0a5954328c0105093a9fb210ee 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -71,7 +71,7 @@
 #include "lluicolortable.h"
 #include "llurldispatcher.h"
 #include "llurlhistory.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llrender.h"
 #include "llteleporthistory.h"
 #include "lllocationhistory.h"
@@ -1915,25 +1915,25 @@ bool LLAppViewer::initConfiguration()
 	// These are warnings that appear on the first experience of that condition.
 	// They are already set in the settings_default.xml file, but still need to be added to LLFirstUse
 	// for disable/reset ability
-	LLFirstUse::addConfigVariable("FirstBalanceIncrease");
-	LLFirstUse::addConfigVariable("FirstBalanceDecrease");
-	LLFirstUse::addConfigVariable("FirstSit");
-	LLFirstUse::addConfigVariable("FirstMap");
-	LLFirstUse::addConfigVariable("FirstGoTo");
-	LLFirstUse::addConfigVariable("FirstBuild");
+//	LLFirstUse::addConfigVariable("FirstBalanceIncrease");
+//	LLFirstUse::addConfigVariable("FirstBalanceDecrease");
+//	LLFirstUse::addConfigVariable("FirstSit");
+//	LLFirstUse::addConfigVariable("FirstMap");
+//	LLFirstUse::addConfigVariable("FirstGoTo");
+//	LLFirstUse::addConfigVariable("FirstBuild");
 //	LLFirstUse::addConfigVariable("FirstLeftClickNoHit");
-	LLFirstUse::addConfigVariable("FirstTeleport");
-	LLFirstUse::addConfigVariable("FirstOverrideKeys");
-	LLFirstUse::addConfigVariable("FirstAttach");
-	LLFirstUse::addConfigVariable("FirstAppearance");
-	LLFirstUse::addConfigVariable("FirstInventory");
-	LLFirstUse::addConfigVariable("FirstSandbox");
-	LLFirstUse::addConfigVariable("FirstFlexible");
-	LLFirstUse::addConfigVariable("FirstDebugMenus");
-	LLFirstUse::addConfigVariable("FirstStreamingMedia");
-	LLFirstUse::addConfigVariable("FirstSculptedPrim");
-	LLFirstUse::addConfigVariable("FirstVoice");
-	LLFirstUse::addConfigVariable("FirstMedia");
+//	LLFirstUse::addConfigVariable("FirstTeleport");
+//	LLFirstUse::addConfigVariable("FirstOverrideKeys");
+//	LLFirstUse::addConfigVariable("FirstAttach");
+//	LLFirstUse::addConfigVariable("FirstAppearance");
+//	LLFirstUse::addConfigVariable("FirstInventory");
+//	LLFirstUse::addConfigVariable("FirstSandbox");
+//	LLFirstUse::addConfigVariable("FirstFlexible");
+//	LLFirstUse::addConfigVariable("FirstDebugMenus");
+//	LLFirstUse::addConfigVariable("FirstStreamingMedia");
+//	LLFirstUse::addConfigVariable("FirstSculptedPrim");
+//	LLFirstUse::addConfigVariable("FirstVoice");
+//	LLFirstUse::addConfigVariable("FirstMedia");
 		
 	// - read command line settings.
 	LLControlGroupCLP clp;
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index c3deb602eec9042cef8b426f72eabaabb23a8d16..40c9bb6afabeedd4fcccbca94f16c8f1f350df78 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -172,24 +172,6 @@ void LLAvatarActions::offerTeleport(const std::vector<LLUUID>& ids)
 		return;
 
 	handle_lure(ids);
-
-	// Record the offer.
-	for (std::vector<LLUUID>::const_iterator it = ids.begin(); it != ids.end(); it++)
-	{
-		LLUUID target_id = *it;
-		std::string target_name;
-
-		gCacheName->getFullName(target_id, target_name);
-
-		LLSD args;
-		args["TO_NAME"] = target_name;
-
-		LLSD payload;
-		payload["from_id"] = target_id;
-		payload["SESSION_NAME"] = target_name;
-		payload["SUPPRESS_TOAST"] = true;
-		LLNotificationsUtil::add("TeleportOfferSent", args, payload);
-	}
 }
 
 // static
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 19e9e52ddfd84ba001b79e7b6e0423cbdaf859a1..6784e6693b0673882dc3f76ec0e19762e5c1ea7b 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -320,6 +320,11 @@ boost::signals2::connection LLAvatarList::setRefreshCompleteCallback(const commi
 	return mRefreshCompleteSignal.connect(cb);
 }
 
+boost::signals2::connection LLAvatarList::setItemDoubleClickCallback(const mouse_signal_t::slot_type& cb)
+{
+	return mItemDoubleClickSignal.connect(cb);
+}
+
 void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos)
 {
 	LLAvatarListItem* item = new LLAvatarListItem();
@@ -333,6 +338,8 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is
 	item->setShowProfileBtn(mShowProfileBtn);
 	item->showSpeakingIndicator(mShowSpeakingIndicator);
 
+	item->setDoubleClickCallback(boost::bind(&LLAvatarList::onItemDoucleClicked, this, _1, _2, _3, _4));
+
 	addItem(item, id, pos);
 }
 
@@ -400,6 +407,11 @@ void LLAvatarList::updateLastInteractionTimes()
 	}
 }
 
+void LLAvatarList::onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+{
+	mItemDoubleClickSignal(ctrl, x, y, mask);
+}
+
 bool LLAvatarItemComparator::compare(const LLPanel* item1, const LLPanel* item2) const
 {
 	const LLAvatarListItem* avatar_item1 = dynamic_cast<const LLAvatarListItem*>(item1);
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 0d2ce884ae7c6b28ebf35c7181beb665b0586310..a58a5623786438bcc8dc64d9e930945c84c20afb 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -92,6 +92,8 @@ class LLAvatarList : public LLFlatListView
 
 	boost::signals2::connection setRefreshCompleteCallback(const commit_signal_t::slot_type& cb);
 
+	boost::signals2::connection setItemDoubleClickCallback(const mouse_signal_t::slot_type& cb);
+
 protected:
 	void refresh();
 
@@ -101,6 +103,7 @@ class LLAvatarList : public LLFlatListView
 		std::vector<LLUUID>& vadded,
 		std::vector<LLUUID>& vremoved);
 	void updateLastInteractionTimes();
+	void onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask);
 
 private:
 
@@ -120,6 +123,7 @@ class LLAvatarList : public LLFlatListView
 	LLAvatarListItem::ContextMenu* mContextMenu;
 
 	commit_signal_t mRefreshCompleteSignal;
+	mouse_signal_t mItemDoubleClickSignal;
 };
 
 /** Abstract comparator for avatar items */
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index 1043858373cd77d270dc561f4b2afb58ab48c723..66ab32f3e88bd599ac39c3d232bc75a0ffc3fecc 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -258,6 +258,21 @@ void LLAvatarListItem::onProfileBtnClick()
 	LLAvatarActions::showProfile(mAvatarId);
 }
 
+BOOL LLAvatarListItem::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+	if(mInfoBtn->getRect().pointInRect(x, y))
+	{
+		onInfoBtnClick();
+		return TRUE;
+	}
+	if(mProfileBtn->getRect().pointInRect(x, y))
+	{
+		onProfileBtnClick();
+		return TRUE;
+	}
+	return LLPanel::handleDoubleClick(x, y, mask);
+}
+
 void LLAvatarListItem::setValue( const LLSD& value )
 {
 	if (!value.isMap()) return;;
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index f76ffb391d455a9bd1f3c2bfbabe026976dacfce..479a4833cb94bb8bcfec844a9c866dbb3ccde582 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -103,6 +103,8 @@ class LLAvatarListItem : public LLPanel, public LLFriendObserver
 	void onInfoBtnClick();
 	void onProfileBtnClick();
 
+	/*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
+
 protected:
 	/**
 	 * Contains indicator to show voice activity. 
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index c0efb85b512514c8572ad841490d01aaf2d289d2..6317a6a392e00d10fedeb241db1044955f089986 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -724,13 +724,28 @@ void LLCallFloater::removeVoiceRemoveTimer(const LLUUID& voice_speaker_id)
 
 bool LLCallFloater::validateSpeaker(const LLUUID& speaker_id)
 {
-	if (mVoiceType != VC_LOCAL_CHAT)
-		return true;
+	bool is_valid = true;
+	switch (mVoiceType)
+	{
+	case  VC_LOCAL_CHAT:
+		{
+			// A nearby chat speaker is considered valid it it's known to LLVoiceClient (i.e. has enabled voice).
+			std::vector<LLUUID> speakers;
+			get_voice_participants_uuids(speakers);
+			is_valid = std::find(speakers.begin(), speakers.end(), speaker_id) != speakers.end();
+		}
+		break;
+	case VC_GROUP_CHAT:
+		// if participant had left this call before do not allow add her again. See EXT-4216.
+		// but if she Join she will be added into the list from the LLCallFloater::onChange()
+		is_valid = STATE_LEFT != getState(speaker_id);
+		break;
+	default:
+		// do nothing. required for Linux build
+		break;
+	}
 
-	// A nearby chat speaker is considered valid it it's known to LLVoiceClient (i.e. has enabled voice).
-	std::vector<LLUUID> speakers;
-	get_voice_participants_uuids(speakers);
-	return std::find(speakers.begin(), speakers.end(), speaker_id) != speakers.end();
+	return is_valid;
 }
 
 void LLCallFloater::connectToChannel(LLVoiceChannel* channel)
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index dc2e22f8992d8f34f6a6cec8271a50c92eec0c42..5cbe6f9670d240aa750faab97ba6faaed531edd2 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -540,6 +540,11 @@ void LLIMChiclet::toggleSpeakerControl()
 
 void LLIMChiclet::setCounter(S32 counter)
 {
+	if (mCounterCtrl->getCounter() == counter)
+	{
+		return;
+	}
+
 	mCounterCtrl->setCounter(counter);
 	setShowCounter(counter);
 	setShowNewMessagesIcon(counter);
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 4103ccf175a6c7c1949a63d3a5778e61e283fe19..fd6a92c47a98e89a24a5af2a997634eb0dcb577b 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -508,14 +508,14 @@ void LLFavoritesBarCtrl::handleExistingFavoriteDragAndDrop(S32 x, S32 y)
 
 	if (dest)
 	{
-		updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId());
+		LLInventoryModel::updateItemsOrder(mItems, mDragItemId, dest->getLandmarkId());
 	}
 	else
 	{
 		mItems.push_back(gInventory.getItem(mDragItemId));
 	}
 
-	saveItemsOrder(mItems);
+	gInventory.saveItemsOrder(mItems);
 
 	LLToggleableMenu* menu = (LLToggleableMenu*) mPopupMenuHandle.get();
 
@@ -1193,25 +1193,6 @@ BOOL LLFavoritesBarCtrl::needToSaveItemsOrder(const LLInventoryModel::item_array
 	return result;
 }
 
-void LLFavoritesBarCtrl::saveItemsOrder(LLInventoryModel::item_array_t& items)
-{
-	int sortField = 0;
-
-	// current order is saved by setting incremental values (1, 2, 3, ...) for the sort field
-	for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
-	{
-		LLViewerInventoryItem* item = *i;
-
-		item->setSortField(++sortField);
-		item->setComplete(TRUE);
-		item->updateServer(FALSE);
-
-		gInventory.updateItem(item);
-	}
-
-	gInventory.notifyObservers();
-}
-
 LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id)
 {
 	LLInventoryModel::item_array_t::iterator result = items.end();
@@ -1228,15 +1209,6 @@ LLInventoryModel::item_array_t::iterator LLFavoritesBarCtrl::findItemByUUID(LLIn
 	return result;
 }
 
-void LLFavoritesBarCtrl::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId)
-{
-	LLViewerInventoryItem* srcItem = gInventory.getItem(srcItemId);
-	LLViewerInventoryItem* destItem = gInventory.getItem(destItemId);
-
-	items.erase(findItemByUUID(items, srcItem->getUUID()));
-	items.insert(findItemByUUID(items, destItem->getUUID()), srcItem);
-}
-
 void LLFavoritesBarCtrl::insertBeforeItem(LLInventoryModel::item_array_t& items, const LLUUID& beforeItemId, LLViewerInventoryItem* insertedItem)
 {
 	LLViewerInventoryItem* beforeItem = gInventory.getItem(beforeItemId);
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 9ac734baffd70a49ea1e72d2106f515e29b7c928..40dd551eefcdebce781f246f97da6ab757e30c1b 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -126,16 +126,7 @@ class LLFavoritesBarCtrl : public LLUICtrl, public LLInventoryObserver
 	// checks if the current order of the favorites items must be saved
 	BOOL needToSaveItemsOrder(const LLInventoryModel::item_array_t& items);
 
-	// saves current order of the favorites items
-	void saveItemsOrder(LLInventoryModel::item_array_t& items);
-
-	/*
-	 * changes favorites items order by insertion of the item identified by srcItemId
-	 * BEFORE the item identified by destItemId. both items must exist in items array.
-	 */
-	void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId);
-
-	/*
+	/**
 	 * inserts an item identified by insertedItemId BEFORE an item identified by beforeItemId.
 	 * this function assumes that an item identified by insertedItemId doesn't exist in items array.
 	 */
diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp
index 7fd0e070bef767bc854361a2ad1f71bcb979000f..b3fdf60b11a1cce7fc35b45c2efebb516ae0f8af 100644
--- a/indra/newview/llfirstuse.cpp
+++ b/indra/newview/llfirstuse.cpp
@@ -45,6 +45,7 @@
 #include "llappviewer.h"
 #include "lltracker.h"
 
+/*
 // static
 std::set<std::string> LLFirstUse::sConfigVariables;
 
@@ -75,7 +76,8 @@ void LLFirstUse::resetFirstUse()
 		gWarningSettings.setBOOL(*iter, TRUE);
 	}
 }
-
+*/
+/*
 
 // Called whenever the viewer detects that your balance went up
 void LLFirstUse::useBalanceIncrease(S32 delta)
@@ -145,6 +147,8 @@ void LLFirstUse::useBuild()
 		LLNotificationsUtil::add("FirstBuild");
 	}
 }
+ 
+ */
 /*
 // static
 void LLFirstUse::useLeftClickNoHit()
@@ -157,6 +161,7 @@ void LLFirstUse::useLeftClickNoHit()
 	}
 }
 */
+/*
 // static
 void LLFirstUse::useTeleport()
 {
@@ -171,7 +176,7 @@ void LLFirstUse::useTeleport()
 		}
 	}
 }
-
+*/
 // static
 void LLFirstUse::useOverrideKeys()
 {
@@ -187,7 +192,7 @@ void LLFirstUse::useOverrideKeys()
 		}
 	}
 }
-
+/*
 // static
 void LLFirstUse::useAttach()
 {
@@ -216,6 +221,7 @@ void LLFirstUse::useInventory()
 	}
 }
 
+*/
 
 // static
 void LLFirstUse::useSandbox()
@@ -230,7 +236,7 @@ void LLFirstUse::useSandbox()
 		LLNotificationsUtil::add("FirstSandbox", args);
 	}
 }
-
+/*
 // static
 void LLFirstUse::useFlexible()
 {
@@ -277,3 +283,4 @@ void LLFirstUse::useMedia()
 		//LLNotificationsUtil::add("FirstMedia");
 	}
 }
+*/
diff --git a/indra/newview/llfirstuse.h b/indra/newview/llfirstuse.h
index 7b4f9f516fd80018f5047bfe90fee726e835a39a..3c7551f6cbb4e472a4a3c90dae2bed078b121213 100644
--- a/indra/newview/llfirstuse.h
+++ b/indra/newview/llfirstuse.h
@@ -79,6 +79,7 @@ object or from inventory.
 class LLFirstUse
 {
 public:
+/*	
 	// Add a config variable to be reset on resetFirstUse()
 	static void addConfigVariable(const std::string& var);
 	
@@ -97,11 +98,16 @@ class LLFirstUse
 	static void useBuild();
 //	static void useLeftClickNoHit();
 	static void useTeleport();
+*/ 
 	static void useOverrideKeys();
+/*	
 	static void useAttach();
 	static void useAppearance();
 	static void useInventory();
+ */
 	static void useSandbox();
+	
+/*
 	static void useFlexible();
 	static void useDebugMenus();
 	static void useSculptedPrim();
@@ -109,6 +115,7 @@ class LLFirstUse
 	
 protected:
 	static std::set<std::string> sConfigVariables;
+*/
 };
 
 #endif
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index 6a9c602db2032d206e4d0d500b8c44a90542ed02..de65c6f876c37fb11c66226c631a221e7472e2bd 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -110,7 +110,7 @@ LLFloaterGesture::LLFloaterGesture(const LLSD& key)
 
 	mCommitCallbackRegistrar.add("Gesture.Action.ToogleActiveState", boost::bind(&LLFloaterGesture::onActivateBtnClick, this));
 	mCommitCallbackRegistrar.add("Gesture.Action.ShowPreview", boost::bind(&LLFloaterGesture::onClickEdit, this));
-	mCommitCallbackRegistrar.add("Gesture.Action.CopyPast", boost::bind(&LLFloaterGesture::onCopyPastAction, this, _2));
+	mCommitCallbackRegistrar.add("Gesture.Action.CopyPaste", boost::bind(&LLFloaterGesture::onCopyPasteAction, this, _2));
 	mCommitCallbackRegistrar.add("Gesture.Action.SaveToCOF", boost::bind(&LLFloaterGesture::addToCurrentOutFit, this));
 
 	mEnableCallbackRegistrar.add("Gesture.EnableAction", boost::bind(&LLFloaterGesture::isActionEnabled, this, _2));
@@ -245,6 +245,7 @@ void LLFloaterGesture::refreshAll()
 
 void LLFloaterGesture::buildGestureList()
 {
+	S32 scroll_pos = mGestureList->getScrollPos();
 	std::vector<LLUUID> selected_items;
 	getSelectedIds(selected_items);
 	LL_DEBUGS("Gesture")<< "Rebuilding gesture list "<< LL_ENDL;
@@ -274,13 +275,14 @@ void LLFloaterGesture::buildGestureList()
 			}
 		}
 	}
+
 	// attempt to preserve scroll position through re-builds
-	// since we do re-build any time anything dirties
+	// since we do re-build whenever something gets dirty
 	for(std::vector<LLUUID>::iterator it = selected_items.begin(); it != selected_items.end(); it++)
 	{
 		mGestureList->selectByID(*it);
 	}
-	mGestureList->scrollToShowSelected();
+	mGestureList->setScrollPos(scroll_pos);
 }
 
 void LLFloaterGesture::addGesture(const LLUUID& item_id , LLMultiGesture* gesture,LLCtrlListInterface * list )
@@ -475,7 +477,7 @@ void LLFloaterGesture::onActivateBtnClick()
 	}
 }
 
-void LLFloaterGesture::onCopyPastAction(const LLSD& command)
+void LLFloaterGesture::onCopyPasteAction(const LLSD& command)
 {
 	std::string command_name  = command.asString();
 	// since we select this comman inventory item had  already arrived .
diff --git a/indra/newview/llfloatergesture.h b/indra/newview/llfloatergesture.h
index 14e132900df59d184a6c736efa0021bf6a1446c9..629d77b949dfcf64992f276b6b1af4d9484c2ca8 100644
--- a/indra/newview/llfloatergesture.h
+++ b/indra/newview/llfloatergesture.h
@@ -99,7 +99,7 @@ class LLFloaterGesture
 	void onClickPlay();
 	void onClickNew();
 	void onCommitList();
-	void onCopyPastAction(const LLSD& command);
+	void onCopyPasteAction(const LLSD& command);
 	void onDeleteSelected();
 
 	LLUUID mSelectedID;
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 76c0a7637c07a69f70853f29bf1b485091c24424..e62e2c99a7af55733f32f7f1e09727ad6fc74b95 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -35,7 +35,7 @@
 #include "llfloaterinventory.h"
 
 #include "llagent.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterreg.h"
 #include "llinventorymodel.h"
 #include "llpanelmaininventory.h"
@@ -135,5 +135,5 @@ void LLFloaterInventory::cleanup()
 
 void LLFloaterInventory::onOpen(const LLSD& key)
 {
-	LLFirstUse::useInventory();
+	//LLFirstUse::useInventory();
 }
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 9af37e817499a6b59ba1970ab4ba0095000c44dd..87ee7b849877e4ce6ec0e64664750eca80ec8c5f 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -51,7 +51,7 @@
 #include "lldirpicker.h"
 #include "llfeaturemanager.h"
 #include "llfocusmgr.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterreg.h"
 #include "llfloaterabout.h"
 #include "llfloaterhardwaresettings.h"
@@ -185,8 +185,8 @@ void handleNameTagOptionChanged(const LLSD& newvalue);
 viewer_media_t get_web_media();
 bool callback_clear_browser_cache(const LLSD& notification, const LLSD& response);
 
-bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
-bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
+//bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
+//bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater);
 
 void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator);
 
@@ -236,7 +236,7 @@ void handleNameTagOptionChanged(const LLSD& newvalue)
 	}
 }
 
-bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater)
+/*bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFloaterPreference* floater)
 {
 	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
 	if (0 == option && floater )
@@ -244,7 +244,7 @@ bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFlo
 		if ( floater )
 		{
 			floater->setAllIgnored();
-			LLFirstUse::disableFirstUse();
+		//	LLFirstUse::disableFirstUse();
 			floater->buildPopupLists();
 		}
 	}
@@ -259,13 +259,13 @@ bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFl
 		if ( floater )
 		{
 			floater->resetAllIgnored();
-			LLFirstUse::resetFirstUse();
+			//LLFirstUse::resetFirstUse();
 			floater->buildPopupLists();
 		}
 	}
 	return false;
 }
-
+*/
 
 void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator)
 {
@@ -313,8 +313,8 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
 	mCommitCallbackRegistrar.add("Pref.SelectSkin",				boost::bind(&LLFloaterPreference::onSelectSkin, this));
 	mCommitCallbackRegistrar.add("Pref.VoiceSetKey",			boost::bind(&LLFloaterPreference::onClickSetKey, this));
 	mCommitCallbackRegistrar.add("Pref.VoiceSetMiddleMouse",	boost::bind(&LLFloaterPreference::onClickSetMiddleMouse, this));
-	mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs",		boost::bind(&LLFloaterPreference::onClickSkipDialogs, this));
-	mCommitCallbackRegistrar.add("Pref.ClickResetDialogs",		boost::bind(&LLFloaterPreference::onClickResetDialogs, this));
+//	mCommitCallbackRegistrar.add("Pref.ClickSkipDialogs",		boost::bind(&LLFloaterPreference::onClickSkipDialogs, this));
+//	mCommitCallbackRegistrar.add("Pref.ClickResetDialogs",		boost::bind(&LLFloaterPreference::onClickResetDialogs, this));
 	mCommitCallbackRegistrar.add("Pref.ClickEnablePopup",		boost::bind(&LLFloaterPreference::onClickEnablePopup, this));
 	mCommitCallbackRegistrar.add("Pref.ClickDisablePopup",		boost::bind(&LLFloaterPreference::onClickDisablePopup, this));	
 	mCommitCallbackRegistrar.add("Pref.LogPath",				boost::bind(&LLFloaterPreference::onClickLogPath, this));
@@ -1070,7 +1070,7 @@ void LLFloaterPreference::onClickSetMiddleMouse()
 	// update the control right away since we no longer wait for apply
 	getChild<LLUICtrl>("modifier_combo")->onCommit();
 }
-
+/*
 void LLFloaterPreference::onClickSkipDialogs()
 {
 	LLNotificationsUtil::add("SkipShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_skip_dialogs, _1, _2, this));
@@ -1080,6 +1080,7 @@ void LLFloaterPreference::onClickResetDialogs()
 {
 	LLNotificationsUtil::add("ResetShowNextTimeDialogs", LLSD(), LLSD(), boost::bind(&callback_reset_dialogs, _1, _2, this));
 }
+ */
 
 void LLFloaterPreference::onClickEnablePopup()
 {	
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index b2bc34231d35f08123e254c1a6bdbae03b934c2c..b7ddc1fe64e4f060cae1c8bb5d777c10e3c7dd69 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -110,8 +110,8 @@ class LLFloaterPreference : public LLFloater
 	void onClickSetKey();
 	void setKey(KEY key);
 	void onClickSetMiddleMouse();
-	void onClickSkipDialogs();
-	void onClickResetDialogs();
+//	void onClickSkipDialogs();
+//	void onClickResetDialogs();
 	void onClickEnablePopup();
 	void onClickDisablePopup();	
 	void resetAllIgnored();
diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp
index 8979575ef7954b87cbf394f4288f8cd2547be373..a6ffa5ec09d699a2a8ee298b277498f10079d67d 100644
--- a/indra/newview/llfloatersettingsdebug.cpp
+++ b/indra/newview/llfloatersettingsdebug.cpp
@@ -34,7 +34,7 @@
 #include "llfloatersettingsdebug.h"
 #include "llfloater.h"
 #include "lluictrlfactory.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llcombobox.h"
 #include "llspinctrl.h"
 #include "llcolorswatch.h"
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 0781d8ed0695138ea5a0991813c2dc0905fc6e1b..a00d7abd173fa2ff7af47270f0667eb846d13a7c 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -47,7 +47,7 @@
 #include "llviewercontrol.h"
 #include "llcommandhandler.h"
 #include "lldraghandle.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterreg.h"		// getTypedInstance()
 #include "llfocusmgr.h"
 #include "llinventorymodel.h"
@@ -314,7 +314,7 @@ void LLFloaterWorldMap::onOpen(const LLSD& key)
 		adjustZoomSliderBounds();
 
 		// Could be first show
-		LLFirstUse::useMap();
+		//LLFirstUse::useMap();
 
 		// Start speculative download of landmarks
 		const LLUUID landmark_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK);
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index e9661003ea07fce98569ff412fcd139d3f46ff64..f751fa2273dff6e130e876fed38ca2c29383d0f8 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -80,7 +80,7 @@
 #include "llrecentpeople.h"
 #include "llsyswellwindow.h"
 
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llagentui.h"
 #include "lltextutil.h"
 
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 6e72a7a4f726154a49c6d915edae9cb1685ff2d9..e9176da7152ace83836ffb0823a128ff88e4ee0b 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -2931,50 +2931,6 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response
 	return false;
 }
 
-/*
-Next functions intended to reorder items in the inventory folder and save order on server
-Is now used for Favorites folder.
-
-*TODO: refactoring is needed with Favorites Bar functionality. Probably should be moved in LLInventoryModel
-*/
-void saveItemsOrder(LLInventoryModel::item_array_t& items)
-{
-	int sortField = 0;
-
-	// current order is saved by setting incremental values (1, 2, 3, ...) for the sort field
-	for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
-	{
-		LLViewerInventoryItem* item = *i;
-
-		item->setSortField(++sortField);
-		item->setComplete(TRUE);
-		item->updateServer(FALSE);
-
-		gInventory.updateItem(item);
-
-		// Tell the parent folder to refresh its sort order.
-		gInventory.addChangedMask(LLInventoryObserver::SORT, item->getParentUUID());
-	}
-
-	gInventory.notifyObservers();
-}
-
-LLInventoryModel::item_array_t::iterator findItemByUUID(LLInventoryModel::item_array_t& items, const LLUUID& id)
-{
-	LLInventoryModel::item_array_t::iterator result = items.end();
-
-	for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
-	{
-		if ((*i)->getUUID() == id)
-		{
-			result = i;
-			break;
-		}
-	}
-
-	return result;
-}
-
 // See also LLInventorySort where landmarks in the Favorites folder are sorted.
 class LLViewerInventoryItemSort
 {
@@ -2996,15 +2952,6 @@ void rearrange_item_order_by_sort_field(LLInventoryModel::item_array_t& items)
 	std::sort(items.begin(), items.end(), sort_functor);
 }
 
-void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& srcItemId, const LLUUID& destItemId)
-{
-	LLViewerInventoryItem* srcItem = gInventory.getItem(srcItemId);
-	LLViewerInventoryItem* destItem = gInventory.getItem(destItemId);
-
-	items.erase(findItemByUUID(items, srcItem->getUUID()));
-	items.insert(findItemByUUID(items, destItem->getUUID()), srcItem);
-}
-
 BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
 										BOOL drop)
 {
@@ -3103,9 +3050,9 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
 					rearrange_item_order_by_sort_field(items);
 
 					// update order
-					updateItemsOrder(items, srcItemId, destItemId);
+					LLInventoryModel::updateItemsOrder(items, srcItemId, destItemId);
 
-					saveItemsOrder(items);
+					gInventory.saveItemsOrder(items);
 				}
 			}
 			else if (favorites_id == mUUID) // if target is the favorites folder we use copy
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 8f4136c01f61cca433823338d19c52278d54dcce..e3caabf08f7889813968e608c359f251d6eadbd6 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -50,7 +50,7 @@
 // newview includes
 #include "llappearancemgr.h"
 #include "llappviewer.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterchat.h"
 #include "llfloatercustomize.h"
 #include "llfocusmgr.h"
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index c603af9166993e409a06032094f8355b32d9fd06..ef18386e57381fe15c7c01db9ff9659c9ca94cb3 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -3622,6 +3622,57 @@ BOOL LLInventoryModel::getIsFirstTimeInViewer2()
 	return sFirstTimeInViewer2;
 }
 
+static LLInventoryModel::item_array_t::iterator find_item_iter_by_uuid(LLInventoryModel::item_array_t& items, const LLUUID& id)
+{
+	LLInventoryModel::item_array_t::iterator result = items.end();
+
+	for (LLInventoryModel::item_array_t::iterator i = items.begin(); i != items.end(); ++i)
+	{
+		if ((*i)->getUUID() == id)
+		{
+			result = i;
+			break;
+		}
+	}
+
+	return result;
+}
+
+// static
+void LLInventoryModel::updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id)
+{
+	LLInventoryModel::item_array_t::iterator it_src = find_item_iter_by_uuid(items, src_item_id);
+	LLInventoryModel::item_array_t::iterator it_dest = find_item_iter_by_uuid(items, dest_item_id);
+
+	if (it_src == items.end() || it_dest == items.end()) return;
+
+	LLViewerInventoryItem* src_item = *it_src;
+	items.erase(it_src);
+	items.insert(it_dest, src_item);
+}
+
+void LLInventoryModel::saveItemsOrder(const LLInventoryModel::item_array_t& items)
+{
+	int sortField = 0;
+
+	// current order is saved by setting incremental values (1, 2, 3, ...) for the sort field
+	for (item_array_t::const_iterator i = items.begin(); i != items.end(); ++i)
+	{
+		LLViewerInventoryItem* item = *i;
+
+		item->setSortField(++sortField);
+		item->setComplete(TRUE);
+		item->updateServer(FALSE);
+
+		updateItem(item);
+
+		// Tell the parent folder to refresh its sort order.
+		addChangedMask(LLInventoryObserver::SORT, item->getParentUUID());
+	}
+
+	notifyObservers();
+}
+
 //----------------------------------------------------------------------------
 
 // *NOTE: DEBUG functionality
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 39377b4ae24985cf483d45e4822f282399b85c08..e8698c0759d290ad9cec84a4769d5b1882bf0de0 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -384,6 +384,30 @@ class LLInventoryModel
 	void setLibraryOwnerID(const LLUUID& id);
 	void setLibraryRootFolderID(const LLUUID& id);
 
+
+	/**
+	 * Changes items order by insertion of the item identified by src_item_id
+	 * BEFORE the item identified by dest_item_id. Both items must exist in items array.
+	 *
+	 * Sorting is stored after method is finished. Only src_item_id is moved before dest_item_id.
+	 *
+	 * @param[in, out] items - vector with items to be updated. It should be sorted in a right way
+	 * before calling this method.
+	 * @param src_item_id - LLUUID of inventory item to be moved in new position
+	 * @param dest_item_id - LLUUID of inventory item before which source item should be placed.
+	 */
+	static void updateItemsOrder(LLInventoryModel::item_array_t& items, const LLUUID& src_item_id, const LLUUID& dest_item_id);
+
+	/**
+	 * Saves current order of the passed items using inventory item sort field.
+	 *
+	 * It reset items' sort fields and saves them on server.
+	 * Is used to save order for Favorites folder.
+	 *
+	 * @param[in] items vector of items in order to be saved.
+	 */
+	void saveItemsOrder(const LLInventoryModel::item_array_t& items);
+
 protected:
 
 	// Internal methods which add inventory and make sure that all of
diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp
index a2aef9ba63b5c837c4351b853a921a175185fbe6..757eb3c9bc5b0cb74b9217b1a37ad75207cfaea3 100644
--- a/indra/newview/llmenucommands.cpp
+++ b/indra/newview/llmenucommands.cpp
@@ -45,7 +45,7 @@
 #include "llagent.h"
 #include "llcallingcard.h"
 #include "llviewercontrol.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterchat.h"
 #include "llfloaterworldmap.h"
 #include "lllineeditor.h"
diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp
index f562e45770440758bf8bab17d8e7f9865f491e5d..b95e8bd3a2d24a4ee494dc4bb56d888eab2374f2 100644
--- a/indra/newview/llmorphview.cpp
+++ b/indra/newview/llmorphview.cpp
@@ -40,7 +40,7 @@
 #include "lldrawable.h"
 #include "lldrawpoolavatar.h"
 #include "llface.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloatercustomize.h"
 #include "llfloatertools.h"
 #include "llresmgr.h"
@@ -143,7 +143,7 @@ void LLMorphView::setVisible(BOOL visible)
 			initialize();
 
 			// First run dialog
-			LLFirstUse::useAppearance();
+			//LLFirstUse::useAppearance();
 		}
 		else
 		{
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index 6a61e0f02fe08b747abeba5b31db704b497332ea..d17c287cc75ee8c4a3f7212c81ac5f8f76c128d7 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -73,7 +73,7 @@
 #include "pipeline.h"
 #include "llviewercontrol.h"
 #include "lluictrlfactory.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 
 #include "lldrawpool.h"
 
@@ -682,7 +682,7 @@ void LLPanelObject::getState( )
 		if (objectp->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT))
 		{
 			selected_item = MI_SCULPT;
-			LLFirstUse::useSculptedPrim();
+			//LLFirstUse::useSculptedPrim();
 		}
 
 		
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index e058b3b3267475c8808c13fca22d7c25e8a94aec..df73c27f5458d42b2b3129e68bd75e3b668b7b6d 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -35,6 +35,7 @@
 
 #include "llagent.h"
 #include "llagentwearables.h"
+#include "llappearancemgr.h"
 
 #include "llbutton.h"
 #include "llfloaterreg.h"
@@ -44,6 +45,8 @@
 #include "llinventoryfunctions.h"
 #include "llinventorypanel.h"
 #include "lllandmark.h"
+#include "lllineeditor.h"
+#include "llmodaldialog.h"
 #include "llsidepanelappearance.h"
 #include "llsidetray.h"
 #include "lltabcontainer.h"
@@ -61,12 +64,75 @@
 static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory");
 bool LLPanelOutfitsInventory::sShowDebugEditor = false;
 
+class LLOutfitSaveAsDialog : public LLModalDialog
+{
+private:
+	std::string	mItemName;
+	std::string mTempItemName;
+	
+	boost::signals2::signal<void (const std::string&)> mSaveAsSignal;
+
+public:
+	LLOutfitSaveAsDialog( const LLSD& key )
+		: LLModalDialog( key ),
+		  mTempItemName(key.asString())
+	{
+	}
+		
+	BOOL postBuild()
+	{
+		getChild<LLUICtrl>("Save")->setCommitCallback(boost::bind(&LLOutfitSaveAsDialog::onSave, this ));
+		getChild<LLUICtrl>("Cancel")->setCommitCallback(boost::bind(&LLOutfitSaveAsDialog::onCancel, this ));
+		
+		childSetTextArg("name ed", "[DESC]", mTempItemName);
+		return TRUE;
+	}
+
+	void setSaveAsCommit( const boost::signals2::signal<void (const std::string&)>::slot_type& cb )
+	{
+		mSaveAsSignal.connect(cb);
+	}
+
+	virtual void onOpen(const LLSD& key)
+	{
+		LLLineEditor* edit = getChild<LLLineEditor>("name ed");
+		if (edit)
+		{
+			edit->setFocus(TRUE);
+			edit->selectAll();
+		}
+	}
+
+	void onSave()
+	{
+		mItemName = childGetValue("name ed").asString();
+		LLStringUtil::trim(mItemName);
+		if( !mItemName.empty() )
+		{
+			mSaveAsSignal(mItemName);
+			closeFloater(); // destroys this object
+		}
+	}
+
+	void onCancel()
+	{
+		closeFloater(); // destroys this object
+	}
+};
+	
 LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
 	mActivePanel(NULL),
 	mParent(NULL)
 {
 	mSavedFolderState = new LLSaveFolderState();
 	mSavedFolderState->setApply(FALSE);
+
+	static bool registered_dialog = false;
+	if (!registered_dialog)
+	{
+		LLFloaterReg::add("outfit_save_as", "floater_outfit_save_as.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutfitSaveAsDialog>);
+		registered_dialog = true;
+	}
 }
 
 LLPanelOutfitsInventory::~LLPanelOutfitsInventory()
@@ -177,10 +243,28 @@ void LLPanelOutfitsInventory::onEdit()
 {
 }
 
-void LLPanelOutfitsInventory::onNew()
+void LLPanelOutfitsInventory::onSave()
+{
+	std::string outfit_name;
+
+	if (!LLAppearanceManager::getInstance()->getBaseOutfitName(outfit_name))
+	{
+		outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT);
+	}
+
+	LLOutfitSaveAsDialog* save_as_dialog = LLFloaterReg::showTypedInstance<LLOutfitSaveAsDialog>("outfit_save_as", LLSD(outfit_name), TRUE);
+	if (save_as_dialog)
+	{
+		save_as_dialog->setSaveAsCommit(boost::bind(&LLPanelOutfitsInventory::onSaveCommit, this, _1 ));
+	}
+}
+
+void LLPanelOutfitsInventory::onSaveCommit(const std::string& outfit_name)
 {
-	const std::string& outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT);
 	LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name);
+	LLSD key;
+	LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
+
 	if (mAppearanceTabs)
 	{
 		mAppearanceTabs->selectTabByName("outfitslist_tab");
@@ -291,7 +375,7 @@ void LLPanelOutfitsInventory::onGearButtonClick()
 
 void LLPanelOutfitsInventory::onAddButtonClick()
 {
-	onNew();
+	onSave();
 }
 
 void LLPanelOutfitsInventory::showActionMenu(LLMenuGL* menu, std::string spawning_view_name)
@@ -330,7 +414,7 @@ void LLPanelOutfitsInventory::onCustomAction(const LLSD& userdata)
 	const std::string command_name = userdata.asString();
 	if (command_name == "new")
 	{
-		onNew();
+		onSave();
 	}
 	if (command_name == "edit")
 	{
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index b1173117753ffa096ae84164ee4134975033c6f5..76110e2a3f712f77f6e36d2bfbd696e1cead183f 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -59,7 +59,9 @@ class LLPanelOutfitsInventory : public LLPanel
 	void onAdd();
 	void onRemove();
 	void onEdit();
-	void onNew();
+	void onSave();
+	
+	void onSaveCommit(const std::string& item_name);
 
 	void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
 	void onSelectorButtonClicked();
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 03cc870a59572bcdefe78f470f5c166bdd493ef9..c14b282488c72c479d10df46fb91c315425a24b2 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -532,10 +532,10 @@ BOOL LLPanelPeople::postBuild()
 	friends_panel->childSetAction("add_btn",	boost::bind(&LLPanelPeople::onAddFriendWizButtonClicked,	this));
 	friends_panel->childSetAction("del_btn",	boost::bind(&LLPanelPeople::onDeleteFriendButtonClicked,	this));
 
-	mOnlineFriendList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mOnlineFriendList));
-	mAllFriendList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mAllFriendList));
-	mNearbyList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mNearbyList));
-	mRecentList->setDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, mRecentList));
+	mOnlineFriendList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1));
+	mAllFriendList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1));
+	mNearbyList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1));
+	mRecentList->setItemDoubleClickCallback(boost::bind(&LLPanelPeople::onAvatarListDoubleClicked, this, _1));
 
 	mOnlineFriendList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mOnlineFriendList));
 	mAllFriendList->setCommitCallback(boost::bind(&LLPanelPeople::onAvatarListCommitted, this, mAllFriendList));
@@ -1005,12 +1005,15 @@ void LLPanelPeople::onTabSelected(const LLSD& param)
 		mFilterEditor->setLabel(getString("people_filter_label"));
 }
 
-void LLPanelPeople::onAvatarListDoubleClicked(LLAvatarList* list)
+void LLPanelPeople::onAvatarListDoubleClicked(LLUICtrl* ctrl)
 {
-	LLUUID clicked_id = list->getSelectedUUID();
-
-	if (clicked_id.isNull())
+	LLAvatarListItem* item = dynamic_cast<LLAvatarListItem*>(ctrl);
+	if(!item)
+	{
 		return;
+	}
+
+	LLUUID clicked_id = item->getAvatarId();
 	
 #if 0 // SJB: Useful for testing, but not currently functional or to spec
 	LLAvatarActions::showProfile(clicked_id);
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index da2c0e368cabba4ff2ccbffaa93b765da40f3f71..7580fdbeeffb122545070be93f6f26705ade4810 100644
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
@@ -109,7 +109,7 @@ class LLPanelPeople : public LLPanel
 	void					onNearbyViewSortButtonClicked();
 	void					onFriendsViewSortButtonClicked();
 	void					onGroupsViewSortButtonClicked();
-	void					onAvatarListDoubleClicked(LLAvatarList* list);
+	void					onAvatarListDoubleClicked(LLUICtrl* ctrl);
 	void					onAvatarListCommitted(LLAvatarList* list);
 	void					onGroupPlusButtonClicked();
 	void					onGroupMinusButtonClicked();
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 0a2217fc51c4f70407c21a3f7c828611306e6aff..571745ee024811d86aa16a9ba951940e7c118a3c 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -723,7 +723,10 @@ void LLTeleportHistoryPanel::onTeleportHistoryChange(S32 removed_index)
 	if (-1 == removed_index)
 		showTeleportHistory(); // recreate all items
 	else
+	{
 		replaceItem(removed_index); // replace removed item by most recent
+		updateVerbs();
+	}
 }
 
 void LLTeleportHistoryPanel::replaceItem(S32 removed_index)
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index 5a70842a733bf0d1e525733ea74cac9cfa098cc8..fbe68b4d92f22adfc28041640b7d2ccd785d8c6a 100644
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -54,7 +54,7 @@
 #include "llcolorswatch.h"
 #include "lltexturectrl.h"
 #include "llcombobox.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfocusmgr.h"
 #include "llmanipscale.h"
 #include "llpreviewscript.h"
@@ -470,7 +470,7 @@ void LLPanelVolume::sendIsFlexible()
 
 	if (is_flexible)
 	{
-		LLFirstUse::useFlexible();
+		//LLFirstUse::useFlexible();
 
 		if (objectp->getClickAction() == CLICK_ACTION_SIT)
 		{
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index b6f78d08f1227b609212f73a56ec76e93abfc6aa..0a180512ce41c9838457df18b4f0e6d2bf393089 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -70,7 +70,7 @@ LLParticipantList::LLParticipantList(LLSpeakerMgr* data_source, LLAvatarList* av
 	mSpeakerMgr->addListener(mSpeakerModeratorListener, "update_moderator");
 
 	mAvatarList->setNoItemsCommentText(LLTrans::getString("LoadingData"));
-	mAvatarListDoubleClickConnection = mAvatarList->setDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, mAvatarList));
+	mAvatarListDoubleClickConnection = mAvatarList->setItemDoubleClickCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, _1));
 	mAvatarListRefreshConnection = mAvatarList->setRefreshCompleteCallback(boost::bind(&LLParticipantList::onAvatarListRefreshed, this, _1, _2));
     // Set onAvatarListDoubleClicked as default on_return action.
 	mAvatarListReturnConnection = mAvatarList->setReturnCallback(boost::bind(&LLParticipantList::onAvatarListDoubleClicked, this, mAvatarList));
@@ -132,10 +132,15 @@ void LLParticipantList::setSpeakingIndicatorsVisible(BOOL visible)
 	mAvatarList->setSpeakingIndicatorsVisible(visible);
 };
 
-void LLParticipantList::onAvatarListDoubleClicked(LLAvatarList* list)
+void LLParticipantList::onAvatarListDoubleClicked(LLUICtrl* ctrl)
 {
-	// NOTE(EM): Should we check if there is multiple selection and start conference if it is so?
-	LLUUID clicked_id = list->getSelectedUUID();
+	LLAvatarListItem* item = dynamic_cast<LLAvatarListItem*>(ctrl);
+	if(!item)
+	{
+		return;
+	}
+
+	LLUUID clicked_id = item->getAvatarId();
 
 	if (clicked_id.isNull() || clicked_id == gAgent.getID())
 		return;
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index 70badbc40d2ebdb97c2fbfde263138be22ca259a..e1b1b5af00292301bab0e01b68d0a2f2da0564db 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -232,7 +232,7 @@ class LLParticipantList
 		};
 
 	private:
-		void onAvatarListDoubleClicked(LLAvatarList* list);
+		void onAvatarListDoubleClicked(LLUICtrl* ctrl);
 		void onAvatarListRefreshed(LLUICtrl* ctrl, const LLSD& param);
 
 		/**
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index 77a370cc3fc66874ff72a6bb95788e41f9b48bb3..43215f86bd27772b8e2c20956f10a0a0a7a6b0d8 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -87,7 +87,7 @@ void LLWatchForOutfitRenameObserver::changed(U32 mask)
 		mPanel->refreshCurrentOutfitName();
 	}
 }
-	
+
 LLSidepanelAppearance::LLSidepanelAppearance() :
 	LLPanel(),
 	mFilterSubString(LLStringUtil::null),
@@ -255,7 +255,7 @@ void LLSidepanelAppearance::onNewOutfitButtonClicked()
 {
 	if (!mLookInfo->getVisible())
 	{
-		mPanelOutfitsInventory->onNew();
+		mPanelOutfitsInventory->onSave();
 	}
 }
 
@@ -321,15 +321,11 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
 	mOutfitDirtyTag->setVisible(LLAppearanceManager::getInstance()->isOutfitDirty());
 	if (name == "")
 	{
-		const LLViewerInventoryItem *outfit_link = LLAppearanceManager::getInstance()->getBaseOutfitLink();
-		if (outfit_link)
+		std::string outfit_name;
+		if (LLAppearanceManager::getInstance()->getBaseOutfitName(outfit_name))
 		{
-			const LLViewerInventoryCategory *cat = outfit_link->getLinkedCategory();
-			if (cat && cat->getPreferredType() == LLFolderType::FT_OUTFIT)
-			{
-				mCurrentLookName->setText(cat->getName());
+				mCurrentLookName->setText(outfit_name);
 				return;
-			}
 		}
 		mCurrentLookName->setText(getString("No Outfit"));
 		mOpenOutfitBtn->setEnabled(FALSE);
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 9524b0ece937673775bf60e3a9f5a20bbc77012f..aa2e67fd16f3e299b77dbd471842a46d1d2919f1 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -61,6 +61,7 @@ class LLSidepanelAppearance : public LLPanel
 	void fetchInventory();
 	void inventoryFetched();
 	void updateVerbs();
+	void onNewOutfitButtonClicked();
 
 private:
 	void onFilterEdit(const std::string& search_string);
@@ -68,7 +69,6 @@ class LLSidepanelAppearance : public LLPanel
 	void onOpenOutfitButtonClicked();
 	void onEditAppearanceButtonClicked();
 	void onEditButtonClicked();
-	void onNewOutfitButtonClicked();
 	void onBackButtonClicked();
 	void onEditWearBackClicked();
 	void toggleLookInfoPanel(BOOL visible);
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index 42db6bf9c3f43373563385410a0f6911da7106e1..b450d38b5a3be2301bbbe5293f6da8f324716b0e 100644
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
@@ -229,10 +229,6 @@ void SpeakingIndicatorManager::switchSpeakerIndicators(const speaker_ids_t& spea
 				mSwitchedIndicatorsOn.insert(*it_uuid);
 			}
 		}
-		else
-		{
-			LL_WARNS("SpeakingIndicator") << "indicator was not found among registered: " << *it_uuid << LL_ENDL;
-		}
 	}
 }
 
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 99fa271b78285eeec4e0b3548d71c56a5e72e979..fbc98b7691f39be6e46520e3bef64fdd354154d6 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -100,7 +100,7 @@
 #include "lleventnotifier.h"
 #include "llface.h"
 #include "llfeaturemanager.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterchat.h"
 #include "llfloaterhud.h"
 #include "llfloaterland.h"
diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp
index bf6d715c314a573a4b05eae03b41e0e495cfbf0b..224c5b64bc576ead00e744265922c6da591895b0 100644
--- a/indra/newview/lltoolbar.cpp
+++ b/indra/newview/lltoolbar.cpp
@@ -60,7 +60,7 @@
 #include "lltoolmgr.h"
 #include "llui.h"
 #include "llviewermenu.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llpanelblockedlist.h"
 #include "llscrolllistctrl.h"
 #include "llscrolllistitem.h"
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index aa35f229309899c707f7e2d4604b92dbdf665b1a..4420b046d8ffe64a451b2c4c0ae1a33bd7d35f8e 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -41,7 +41,7 @@
 #include "llagentwearables.h"
 #include "llappearancemgr.h"
 #include "lldictionary.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterreg.h"
 #include "llfloatertools.h"
 #include "llgesturemgr.h"
@@ -1199,11 +1199,11 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target,
 	locateInventory(item, cat);
 	if(!item || !item->isComplete()) return;
 	
-	if (regionp
-		&& (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX))
-	{
-		LLFirstUse::useSandbox();
-	}
+	//if (regionp
+	//	&& (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX))
+	//{
+	//	LLFirstUse::useSandbox();
+	//}
 	// check if it cannot be copied, and mark as remove if it is -
 	// this will remove the object from inventory after rez. Only
 	// bother with this check if we would not normally remove from
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index 26b3bdb82e24516926e320bb0b7a17fa2054cd7b..fd12163fd3ed539c4c3468588589ceea4aec7195 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -38,7 +38,7 @@
 #include "llmenugl.h"
 #include "llfloaterreg.h"
 
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 // tools and manipulators
 #include "lltool.h"
 #include "llmanipscale.h"
@@ -301,7 +301,7 @@ void LLToolMgr::toggleBuildMode()
 		getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
 
 		// Could be first use
-		LLFirstUse::useBuild();
+		//LLFirstUse::useBuild();
 
 		gAgent.resetView(false);
 
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index 412878eef509116b78061ab3fac06ea44567b913..da7e8cd76793bb6a4e2a003b97e5a239dc436f19 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -41,7 +41,7 @@
 #include "llagent.h"
 #include "llviewercontrol.h"
 #include "llfocusmgr.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterland.h"
 #include "llfloaterreg.h"
 #include "llfloaterscriptdebug.h"
diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp
index a7f4cb558e8716543009cac30228892cc88eb117..612bcc03bdc25ed6e6aa8ec8de82114a417e8a91 100644
--- a/indra/newview/lltoolplacer.cpp
+++ b/indra/newview/lltoolplacer.cpp
@@ -38,7 +38,7 @@
 // viewer headers
 #include "llbutton.h"
 #include "llviewercontrol.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloatertools.h"
 #include "llselectmgr.h"
 #include "llstatusbar.h"
@@ -188,7 +188,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics )
 
 	if (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX)
 	{
-		LLFirstUse::useSandbox();
+		//LLFirstUse::useSandbox();
 	}
 
 	// Set params for new object based on its PCode.
@@ -491,7 +491,7 @@ BOOL LLToolPlacer::addDuplicate(S32 x, S32 y)
 	if (regionp
 		&& (regionp->getRegionFlags() & REGION_FLAGS_SANDBOX))
 	{
-		LLFirstUse::useSandbox();
+		//LLFirstUse::useSandbox();
 	}
 
 	return TRUE;
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 4d559e2ca7e724868a561a8e91cb377b51041854..7b9b12108db6156ccf409714121d7dc02ea6ba8e 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -45,7 +45,7 @@
 #include "lldynamictexture.h"
 #include "lldrawpoolalpha.h"
 #include "llfeaturemanager.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llhudmanager.h"
 #include "llimagebmp.h"
 #include "llmemory.h"
@@ -404,7 +404,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
 				if( arrival_fraction > 1.f )
 				{
 					arrival_fraction = 1.f;
-					LLFirstUse::useTeleport();
+					//LLFirstUse::useTeleport();
 					gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
 				}
 				gViewerWindow->setProgressCancelButtonVisible(FALSE, LLTrans::getString("Cancel"));
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 1d07b5d489800b27afc987c75492cadee2cec61b..ef596f9297776d04d273e84700d1bb1e8b5f376f 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -56,7 +56,7 @@
 #include "lluuid.h"
 #include "llkeyboard.h"
 #include "llmutelist.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 
 #include <boost/bind.hpp>	// for SkinFolder listener
 #include <boost/signals2.hpp>
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 1bff04352c52a95bb87d43dfa4f29af0fa2d6509..d2ba898cf03aaa224712c787dea6d2f49746d9d7 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -48,7 +48,7 @@
 #include "llconsole.h"
 #include "lldebugview.h"
 #include "llfilepicker.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterbuy.h"
 #include "llfloaterbuycontents.h"
 #include "llfloaterbuycurrency.h"
@@ -2491,7 +2491,7 @@ class LLObjectBuild : public view_listener_t
 		LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
 
 		// Could be first use
-		LLFirstUse::useBuild();
+		//LLFirstUse::useBuild();
 		return true;
 	}
 };
@@ -2536,7 +2536,7 @@ void handle_object_edit()
 	LLViewerJoystick::getInstance()->setNeedsReset(true);
 	
 	// Could be first use
-	LLFirstUse::useBuild();
+	//LLFirstUse::useBuild();
 	return;
 }
 
@@ -2587,7 +2587,7 @@ class LLLandBuild : public view_listener_t
 		LLToolMgr::getInstance()->getCurrentToolset()->selectTool( LLToolCompCreate::getInstance() );
 
 		// Could be first use
-		LLFirstUse::useBuild();
+		//LLFirstUse::useBuild();
 		return true;
 	}
 };
@@ -2824,7 +2824,7 @@ bool handle_go_to()
 	}
 
 	// Could be first use
-	LLFirstUse::useGoTo();
+	//LLFirstUse::useGoTo();
 	return true;
 }
 
@@ -3626,7 +3626,7 @@ void near_sit_down_point(BOOL success, void *)
 		gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND);
 
 		// Might be first sit
-		LLFirstUse::useSit();
+		//LLFirstUse::useSit();
 	}
 }
 
@@ -5144,7 +5144,7 @@ void toggle_debug_menus(void*)
 	gSavedSettings.setBOOL("UseDebugMenus", visible);
 	if(visible)
 	{
-		LLFirstUse::useDebugMenus();
+		//LLFirstUse::useDebugMenus();
 	}
 	show_debug_menus();
 }
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 4e5655274d8f9181e1ad0f5f7a396e837ef77ef2..7f43213c5deed86e4462edbee3beffb9f9cf6900 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -51,7 +51,7 @@
 
 #include "llagent.h"
 #include "llcallingcard.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterbuycurrency.h"
 #include "llfloaterbuyland.h"
 #include "llfloaterchat.h"
@@ -711,6 +711,18 @@ class LLOpenTaskOffer : public LLInventoryAddedObserver
 	}
  };
 
+class LLOpenTaskGroupOffer : public LLInventoryAddedObserver
+{
+protected:
+	/*virtual*/ void done()
+	{
+		open_inventory_offer(mAdded, "group_offer");
+		mAdded.clear();
+		gInventory.removeObserver(this);
+		delete this;
+	}
+};
+
 //one global instance to bind them
 LLOpenTaskOffer* gNewInventoryObserver=NULL;
 
@@ -929,9 +941,6 @@ void open_inventory_offer(const std::vector<LLUUID>& items, const std::string& f
 			  case LLAssetType::AT_ANIMATION:
 				  LLFloaterReg::showInstance("preview_anim", LLSD(item_id), take_focus);
 				  break;
-			  case LLAssetType::AT_GESTURE:
-				  LLFloaterReg::showInstance("preview_gesture", LLSD(item_id), take_focus);
-				  break;
 			  case LLAssetType::AT_SCRIPT:
 				  LLFloaterReg::showInstance("preview_script", LLSD(item_id), take_focus);
 				  break;
@@ -1146,6 +1155,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
 			}
 			break;
 		case IM_GROUP_NOTICE:
+			opener = new LLOpenTaskGroupOffer;
 			send_auto_receive_response();
 			break;
 		case IM_TASK_INVENTORY_OFFERED:
@@ -4335,10 +4345,10 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 
 	if (gStatusBar)
 	{
-		S32 old_balance = gStatusBar->getBalance();
+	//	S32 old_balance = gStatusBar->getBalance();
 
 		// This is an update, not the first transmission of balance
-		if (old_balance != 0)
+	/*	if (old_balance != 0)
 		{
 			// this is actually an update
 			if (balance > old_balance)
@@ -4350,7 +4360,7 @@ void process_money_balance_reply( LLMessageSystem* msg, void** )
 				LLFirstUse::useBalanceDecrease(balance - old_balance);
 			}
 		}
-
+	 */
 		gStatusBar->setBalance(balance);
 		gStatusBar->setLandCredit(credit);
 		gStatusBar->setLandCommitted(committed);
@@ -5360,8 +5370,24 @@ bool handle_lure_callback(const LLSD& notification, const LLSD& response)
 			it != notification["payload"]["ids"].endArray();
 			++it)
 		{
+			LLUUID target_id = it->asUUID();
+
 			msg->nextBlockFast(_PREHASH_TargetData);
-			msg->addUUIDFast(_PREHASH_TargetID, it->asUUID());
+			msg->addUUIDFast(_PREHASH_TargetID, target_id);
+
+			// Record the offer.
+			{
+				std::string target_name;
+				gCacheName->getFullName(target_id, target_name);
+				LLSD args;
+				args["TO_NAME"] = target_name;
+	
+				LLSD payload;
+				payload["from_id"] = target_id;
+				payload["SESSION_NAME"] = target_name;
+				payload["SUPPRESS_TOAST"] = true;
+				LLNotificationsUtil::add("TeleportOfferSent", args, payload);
+			}
 		}
 		gAgent.sendReliableMessage();
 	}
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index 56dee6b34c7c95afb5ee3ec34945cefdb39c518f..e8b435fc8f5fe26ce19926e43ea5528c6af65476 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -45,7 +45,7 @@
 #include "llviewermediafocus.h"
 #include "llviewerparcelmediaautoplay.h"
 #include "llnotificationsutil.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llpluginclassmedia.h"
 #include "llviewertexture.h"
 
@@ -242,7 +242,7 @@ void LLViewerParcelMedia::play(LLParcel* parcel)
 		sMediaImpl->navigateTo(media_url, mime_type, true);
 	}
 
-	LLFirstUse::useMedia();
+	//LLFirstUse::useMedia();
 
 	LLViewerParcelMediaAutoPlay::playStarted();
 }
@@ -281,7 +281,7 @@ void LLViewerParcelMedia::start()
 	}
 	sMediaImpl->start();
 
-	LLFirstUse::useMedia();
+	//LLFirstUse::useMedia();
 
 	LLViewerParcelMediaAutoPlay::playStarted();
 }
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index 5a5c4e748063b3334d47f9b41e76a32e022ca535..4b2707e6d73642cd9dbc99f8947e218c323c1edf 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -50,7 +50,7 @@
 #include "llagent.h"
 #include "llviewerwindow.h"
 #include "llviewercontrol.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llfloaterbuyland.h"
 #include "llfloatergroups.h"
 #include "llfloaternearbymedia.h"
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 5958742db2196a846ca7ea6bc5758eee36d0671f..4235f97eabb71d826e9f33039957874be40fe753 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -56,7 +56,7 @@
 #include "lldriverparam.h"
 #include "lleditingmotion.h"
 #include "llemote.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "llheadrotmotion.h"
 #include "llhudeffecttrail.h"
 #include "llhudmanager.h"
@@ -5604,7 +5604,7 @@ void LLVOAvatar::sitOnObject(LLViewerObject *sit_object)
 	if (isSelf())
 	{
 		// Might be first sit
-		LLFirstUse::useSit();
+		//LLFirstUse::useSit();
 
 		gAgent.setFlying(FALSE);
 		gAgent.setThirdPersonHeadOffset(LLVector3::zero);
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 42b8a1c2b6bee3ceca36d236e2a8f5ec69946f7b..30f00f04afad3b95341275974643d01ac68f9efb 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -62,7 +62,7 @@
 #include "llimview.h" // for LLIMMgr
 #include "llparcel.h"
 #include "llviewerparcelmgr.h"
-#include "llfirstuse.h"
+//#include "llfirstuse.h"
 #include "lltrans.h"
 #include "llviewerwindow.h"
 #include "llviewercamera.h"
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index 6da38fa0d4d9dacc0abe1ebf5426400ae2ebc732..e2480479308e1dae4d97eb8c425a703d16de1589 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -56,9 +56,12 @@
 	<color
 	 name="Black_50"
 	 value="0 0 0 0.5" />
+	<color
+	name="FrogGreen"
+	value="0.26 0.345 0.263 1" />
 	<color
 	 name="Red"
-	 value="1 0 0 1" />
+	 value="0.729 0 0.121 1" />
 	<color
 	 name="Blue"
 	 value="0 0 1 1" />
@@ -71,16 +74,19 @@
 	<color
 	 name="Transparent"
 	 value="0 0 0 0" />
+	<color
+	name="Purple"
+	value="1 0 1 1" />
   <!-- This color name makes potentially unused colors show up bright purple.
   Leave this here until all Unused? are removed below, otherwise
   the viewer generates many warnings on startup. -->
   <color
 	 name="Unused?"
-	 value="1 0 1 1" />
+	 value=".831 1 0 1" />
 
   <!-- UI Definitions -->
 
-	<color
+    <color
      name="AgentChatColor"
      reference="White" />
     <color
@@ -169,13 +175,13 @@
      reference="LtGray" />
     <color
      name="ChicletFlashColor"
-     reference="0.114 0.65 0.1" />
+     value="0.114 0.65 0.1" />
     <color
      name="ColorDropShadow"
      reference="Black_50" />
     <color
      name="ColorPaletteEntry01"
-     value="0 0 0 1" />
+     reference="Black" />
     <color
      name="ColorPaletteEntry02"
      value="0.5 0.5 0.5 1" />
@@ -217,34 +223,34 @@
      value="0.5 0.25 0 1" />
     <color
      name="ColorPaletteEntry15"
-     value="1 1 1 1" />
+     reference="White" />
     <color
      name="ColorPaletteEntry16"
-     value="1 1 1 1" />
+     reference="White" />
     <color
      name="ColorPaletteEntry17"
-     value="1 1 1 1" />
+     reference="White" />
     <color
      name="ColorPaletteEntry18"
-     value="0.75 0.75 0.75 1" />
+     reference="LtGray" />
     <color
      name="ColorPaletteEntry19"
-     value="1 0 0 1" />
+     reference="Red" />
     <color
      name="ColorPaletteEntry20"
      reference=".5 .5 1 0" />
     <color
      name="ColorPaletteEntry21"
-     value="0 1 0 1" />
+     reference="Green" />
     <color
      name="ColorPaletteEntry22"
      value="0 1 1 1" />
     <color
      name="ColorPaletteEntry23"
-     value="0 0 1 1" />
+     reference="Blue" />
     <color
      name="ColorPaletteEntry24"
-     value="1 0 1 1" />
+     reference="Purple" />
     <color
      name="ColorPaletteEntry25"
      value="1 1 0.5 1" />
@@ -265,10 +271,10 @@
      value="1 0.5 0 1" />
     <color
      name="ColorPaletteEntry31"
-     value="1 1 1 1" />
+     reference="White" />
     <color
      name="ColorPaletteEntry32"
-     value="1 1 1 1" />
+     reference="White" />
     <color
      name="ConsoleBackground"
      reference="Black" />
@@ -325,7 +331,7 @@
      value="0.92 0.92 1 0.78" />
     <color
      name="GridlineColor"
-     value="1 0 0 1" />
+     reference="Red" />
     <color
      name="GridlineShadowColor"
      value="0 0 0 0.31" />
@@ -337,10 +343,10 @@
      value="0.3344 0.5456 0.5159 1" />
     <color
      name="GroupNotifyTextColor"
-	 reference="White"/>
+     reference="White"/>
     <color
      name="GroupNotifyDimmedTextColor"
-	 reference="DkGray"/>
+     reference="DkGray" />
     <color
      name="GroupOverTierColor"
      value="0.43 0.06 0.06 1" />
@@ -397,7 +403,7 @@
      reference="DkGray2" />
     <color
      name="InventoryFocusOutlineColor"
-     reference="EmphasisColor" />
+     reference="White_25" />
     <color
      name="InventoryItemSuffixColor"
      reference="White_25" />
@@ -460,7 +466,7 @@
      reference="DkGray" />
     <color
      name="MenuBarGodBgColor"
-     reference="Green" />
+     reference="FrogGreen" />
     <color
      name="MenuDefaultBgColor"
      reference="DkGray2" />
@@ -481,7 +487,7 @@
      reference="Black" />
     <color
      name="MenuNonProductionGodBgColor"
-     value="0 0.5 0 1" />
+     value="0.263 0.325 0.345 1" />
     <color
      name="MenuPopupBgColor"
 	  reference="DkGray2" />
@@ -508,7 +514,7 @@
      value="0 0 0 0.3" />
     <color
      name="NetMapGroupOwnAboveWater"
-     value="1 0 1 1" />
+     reference="Purple" />
     <color
      name="NetMapGroupOwnBelowWater"
      value="0.78 0 0.78 1" />
@@ -541,7 +547,7 @@
      reference="EmphasisColor" />
     <color
      name="OverdrivenColor"
-     value="1 0 0 1" />
+     reference="Red" />
     <color
      name="PanelDefaultBackgroundColor"
      reference="DkGray" />
@@ -640,10 +646,10 @@
      reference="Unused?" />
     <color
      name="SpeakingColor"
-     value="0 1 0 1" />
+     reference="FrogGreen" />
     <color
      name="SystemChatColor"
-	 reference="White" />
+     reference="White" />
     <color
      name="TextBgFocusColor"
      reference="White" />
@@ -658,7 +664,7 @@
      reference="Black" />
     <color
      name="TextDefaultColor"
-     value="Black" />
+     reference="Black" />
     <color
      name="TextEmbeddedItemColor"
      value="0 0 0.5 1" />
@@ -709,7 +715,7 @@
     <color
      name="SysWellItemSelected"
      value="0.3 0.3 0.3 1.0" />
-	<color
+    <color
      name="ChatToastAgentNameColor"
      reference="EmphasisColor" />
   <color
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 2d519858dbf61c0f8c0c7f2d283694585af93ca5..60c1470b89401ab7716d239ca1d084f14d018eaa 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -591,15 +591,15 @@ with the same filename but different name
   <texture name="Tool_Zoom" file_name="build/Tool_Zoom.png" preload="false" />
 
   <texture name="Toolbar_Divider" file_name="containers/Toolbar_Divider.png" preload="false" />
-  <texture name="Toolbar_Left_Off" file_name="containers/Toolbar_Left_Off.png" preload="false" />
-  <texture name="Toolbar_Left_Press" file_name="containers/Toolbar_Left_Press.png" preload="false" />
-  <texture name="Toolbar_Left_Selected" file_name="containers/Toolbar_Left_Selected.png" preload="false" />
-  <texture name="Toolbar_Middle_Off" file_name="containers/Toolbar_Middle_Off.png" preload="false" />
-  <texture name="Toolbar_Middle_Press" file_name="containers/Toolbar_Middle_Press.png" preload="false" />
-  <texture name="Toolbar_Middle_Selected" file_name="containers/Toolbar_Middle_Selected.png" preload="false" />
-  <texture name="Toolbar_Right_Off" file_name="containers/Toolbar_Right_Off.png" preload="false" />
-  <texture name="Toolbar_Right_Press" file_name="containers/Toolbar_Right_Press.png" preload="false" />
-  <texture name="Toolbar_Right_Selected" file_name="containers/Toolbar_Right_Selected.png" preload="false" />
+  <texture name="Toolbar_Left_Off" file_name="containers/Toolbar_Left_Off.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Left_Press" file_name="containers/Toolbar_Left_Press.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Left_Selected" file_name="containers/Toolbar_Left_Selected.png" preload="false" scale.left="5" scale.bottom="4" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Middle_Off" file_name="containers/Toolbar_Middle_Off.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Middle_Press" file_name="containers/Toolbar_Middle_Press.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Middle_Selected" file_name="containers/Toolbar_Middle_Selected.png" preload="false" scale.left="1" scale.bottom="2" scale.top="24" scale.right="30" />
+  <texture name="Toolbar_Right_Off" file_name="containers/Toolbar_Right_Off.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" />
+  <texture name="Toolbar_Right_Press" file_name="containers/Toolbar_Right_Press.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" />
+  <texture name="Toolbar_Right_Selected" file_name="containers/Toolbar_Right_Selected.png" preload="false" scale.left="1" scale.bottom="4" scale.top="24" scale.right="26" />
 
   <texture name="Tooltip" file_name="widgets/Tooltip.png" preload="true" scale.left="2" scale.top="16" scale.right="100" scale.bottom="3" />
 
@@ -665,10 +665,15 @@ with the same filename but different name
   <texture name="icn_voice-groupfocus.tga" />
   <texture name="icn_voice-pvtfocus.tga" />
 
-  <texture name="jump_left_out.tga" />
-  <texture name="jump_left_in.tga" />
-  <texture name="jump_right_out.tga" />
-  <texture name="jump_right_in.tga" />
+  <texture name="jump_left_out.tga" file_name="widgets/jump_left_out.png" />
+  <texture name="jump_left_in.tga" file_name="widgets/jump_left_in.png" />
+  <texture name="jump_right_out.tga" file_name="widgets/jump_right_out.png" />
+  <texture name="jump_right_in.tga" file_name="widgets/jump_right_in.png" />
+
+  <texture name="scrollbutton_left_out_blue.tga" file_name="widgets/ScrollArrow_Left_Opaque.png" />
+  <texture name="scrollbutton_left_in_blue.tga" file_name="widgets/ScrollArrow_Left_Over_Opaque.png" />
+  <texture name="scrollbutton_right_out_blue.tga" file_name="widgets/ScrollArrow_Right_Opaque.png" />
+  <texture name="scrollbutton_right_in_blue.tga" file_name="widgets/ScrollArrow_Right_Over_Opaque.png" />
 
   <texture name="up_arrow.tga" file_name="up_arrow.png" />
   <texture name="down_arrow.tga" file_name="down_arrow.png" />
@@ -690,7 +695,7 @@ with the same filename but different name
   <texture name="button_anim_play.tga" />
   <texture name="button_anim_play_selected.tga" />
   <texture name="crosshairs.tga" />
-  <texture name="direction_arrow.tga" />
+  <texture name="direction_arrow.tga" file_name="world/BeaconArrow.png" />
 
   <texture name="icon_auction.tga" />
   <texture name="icon_avatar_offline.tga" />
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..549b3980f60dcbccf228a21571010c2f1820b940
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..a74abd5d8adfe8ec2af2560a5d82ab20b0447c5e
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Left_Over_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..36056d0ad977ae292d39161f30f73064217aff8c
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png
new file mode 100644
index 0000000000000000000000000000000000000000..0c1fd6956b37fd962b01c7a53cbeb1accf9aece7
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/ScrollArrow_Right_Over_Opaque.png differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_left_in.png b/indra/newview/skins/default/textures/widgets/jump_left_in.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1425ccfa01f12d275e4f8ea59dd2379fa66cd58
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/jump_left_in.png differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_left_out.png b/indra/newview/skins/default/textures/widgets/jump_left_out.png
new file mode 100644
index 0000000000000000000000000000000000000000..38edf47d19478f2718585cafeb818e5f3b4daac6
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/jump_left_out.png differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_right_in.png b/indra/newview/skins/default/textures/widgets/jump_right_in.png
new file mode 100644
index 0000000000000000000000000000000000000000..39359ab2e2d2b996c30a3b2b88fda22210c15fd1
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/jump_right_in.png differ
diff --git a/indra/newview/skins/default/textures/widgets/jump_right_out.png b/indra/newview/skins/default/textures/widgets/jump_right_out.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f76bbffac5e190be85f9aad45765240ddf391b1
Binary files /dev/null and b/indra/newview/skins/default/textures/widgets/jump_right_out.png differ
diff --git a/indra/newview/skins/default/textures/world/BeaconArrow.png b/indra/newview/skins/default/textures/world/BeaconArrow.png
new file mode 100644
index 0000000000000000000000000000000000000000..12dc246d51ccd4caac7779db3962c60a6fa5ba29
Binary files /dev/null and b/indra/newview/skins/default/textures/world/BeaconArrow.png differ
diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml
index 900f4c5956a91b82d1131bfb660365031f26c425..c58c1f00b96872eae1ba4c375106b7a1a14dec8d 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -209,7 +209,7 @@
             </text>
              <button
      follows="right"
-     height="16"
+     height="23"
      image_pressed="Info_Press"
      image_unselected="Info_Over"
      left_pad="3"
@@ -218,7 +218,7 @@
      width="16" />
           <!--  <button
              follows="left|top"
-             height="16"
+             height="23"
              label="Profile"
              layout="topleft"
              left_pad="4"
@@ -248,7 +248,7 @@
 Leyla Linden               </text>
                  <button
      follows="right"
-     height="16"
+     height="23"
      image_pressed="Info_Press"
      image_unselected="Info_Over"
      left_pad="3"
@@ -263,10 +263,11 @@ Leyla Linden               </text>
              left_pad="4"
              right="-10"
              name="Set..."
-             width="50" />
+             width="50"
+             top_delta="-2"/>
             <check_box
              enabled="false"
-             height="23"
+             height="16"
              label="Allow Deed to Group"
              layout="topleft"
              left="108"
@@ -284,7 +285,7 @@ Leyla Linden               </text>
              right="-10"
              name="Deed..."
              tool_tip="You may only deed land if you are an officer in the selected group."
-             top_delta="0"
+             top_delta="-2"
              width="90" />
             <check_box
              enabled="false"
@@ -294,7 +295,8 @@ Leyla Linden               </text>
              left="108"
              name="check contrib"
              tool_tip="When the land is deeded to the group, the former owner contributes enough land allocation to support it."
-             width="199" />
+             width="199"
+             top_pad="0"/>
             <text
              type="string"
              length="1"
@@ -335,7 +337,7 @@ Leyla Linden               </text>
              layout="topleft"
              left_delta="0"
              name="SalePending"
-             top_pad="6"
+             top_pad="5"
              width="324" />
             <button
              follows="left|top"
@@ -345,7 +347,8 @@ Leyla Linden               </text>
              left_pad="5"
              right="-10"
              name="Sell Land..."
-             width="145" />
+             width="145"
+             top_delta="-25"/>
             <text
              type="string"
              length="1"
@@ -354,7 +357,7 @@ Leyla Linden               </text>
              layout="topleft"
              left_delta="-199"
              name="For sale to"
-             top_delta="2"
+             top_delta="20"
              width="186">
                 For sale to: [BUYER]
             </text>
@@ -366,7 +369,7 @@ Leyla Linden               </text>
              layout="topleft"
              left_delta="0"
              name="Sell with landowners objects in parcel."
-             top_pad="0"
+             top_pad="-3"
              width="186">
                 Objects included in sale
             </text>
@@ -391,7 +394,7 @@ Leyla Linden               </text>
              right="-10"
              name="Cancel Land Sale"
              left_pad="5"
-             top_pad="-10"
+             top_pad="-25"
              width="145" />
             <text
              type="string"
@@ -522,7 +525,7 @@ Leyla Linden               </text>
              layout="topleft"
              left_delta="0"
              name="Reclaim Land..."
-             top_delta="-48"
+             top_delta="-61"
              width="180" />
             <button
              enabled="false"
@@ -810,7 +813,7 @@ Leyla Linden               </text>
              follows="left|top"
              height="16"
              layout="topleft"
-             left_delta="152"
+             left_delta="190"
              name="objects_available"
              top_delta="0"
              width="260">
@@ -834,7 +837,7 @@ Leyla Linden               </text>
              follows="left|top"
              height="16"
              layout="topleft"
-             left_delta="200"
+             left_delta="190"
              name="object_contrib_text"
              top_delta="0"
              width="212">
@@ -858,7 +861,7 @@ Leyla Linden               </text>
              follows="left|top"
              height="16"
              layout="topleft"
-             left_delta="200"
+             left_delta="190"
              name="total_objects_text"
              top_delta="0"
              width="48">
@@ -868,7 +871,7 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="28"
              name="Owned by parcel owner:"
@@ -880,9 +883,9 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
-             left_delta="176"
+             left_delta="172"
              name="owner_objects_text"
              top_delta="0"
              width="48">
@@ -892,33 +895,35 @@ Leyla Linden               </text>
              bottom="100"
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Show"
              label_selected="Show"
              layout="topleft"
              name="ShowOwner"
              right="-140"
-             width="60" />
+             width="60"
+             top_delta="-6"/>
             <button
              bottom="100"
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Return"
              layout="topleft"
              name="ReturnOwner..."
              right="-10"
              tool_tip="Return objects to their owners."
-             width="119" />
+             width="119"
+             top_delta="0"/>
             <text
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="28"
              name="Set to group:"
-             top="104"
+             top_pad="5"
              width="176">
                 Set to group:
             </text>
@@ -926,9 +931,9 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
-             left_delta="176"
+             left_delta="172"
              name="group_objects_text"
              top_delta="0"
              width="48">
@@ -939,32 +944,34 @@ Leyla Linden               </text>
              enabled="false"
              follows="left|top"
              label="Show"
-             height="20"
+             height="23"
              label_selected="Show"
              layout="topleft"
              name="ShowGroup"
              right="-140"
-             width="60" />
+             width="60"
+             top_delta="-6"/>
             <button
              bottom="120"
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Return"
              layout="topleft"
              name="ReturnGroup..."
              right="-10"
              tool_tip="Return objects to their owners."
-             width="119" />
+             width="119"
+             top_delta="0"/>
             <text
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="28"
              name="Owned by others:"
-             top="124"
+             top_pad="5"
              width="176">
                 Owned by others:
             </text>
@@ -972,9 +979,9 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
-             left_delta="176"
+             left_delta="172"
              name="other_objects_text"
              top_delta="0"
              width="48">
@@ -984,33 +991,35 @@ Leyla Linden               </text>
              bottom="140"
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Show"
              label_selected="Show"
              layout="topleft"
              name="ShowOther"
              right="-140"
-             width="60" />
+             width="60"
+             top_delta="-6"/>
             <button
              bottom="140"
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Return"
              layout="topleft"
              name="ReturnOther..."
              right="-10"
              tool_tip="Return objects to their owners."
-             width="119" />
+             width="119"
+             top_delta="0"/>
             <text
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="28"
              name="Selected / sat upon:"
-             top="144"
+             top_pad="5"
              width="176">
                 Selected / sat upon:
             </text>
@@ -1018,9 +1027,9 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
-             left_delta="176"
+             left_delta="172"
              name="selected_objects_text"
              top_delta="0"
              width="48">
@@ -1030,51 +1039,53 @@ Leyla Linden               </text>
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="10"
              name="Autoreturn"
-             top="164"
+             top_pad="0"
              width="294">
-                Autoreturn other Residents&apos; objects (minutes, 0 for off):
+                Auto return other Residents&apos; objects (minutes, 0 for off):
             </text>
             <line_editor
              border_style="line"
              border_thickness="1"
              bottom="180"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              max_length="6"
              name="clean other time"
-             right="-50"
-             width="56" />
+             right="-72"
+             width="56"
+             top_delta="-6"/>
             <text
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="10"
              name="Object Owners:"
-             top="184"
+             top_pad="10"
              width="104">
                 Object Owners:
             </text>
              <button
      follows="top|right"
-     height="20"
+     height="23"
      image_overlay="Refresh_Off"
      layout="topleft"
      name="Refresh List"
      left_pad="5"
      right="-183"
      tool_tip="Refresh Object List"
-     width="20" />
+     width="20"
+  top_delta="-6"/>
             <button
              enabled="false"
              follows="left|top"
-             height="20"
+             height="23"
              label="Return Objects"
              layout="topleft"
              left_pad="6"
@@ -1086,7 +1097,7 @@ Leyla Linden               </text>
              column_padding="0"
              draw_heading="true"
              follows="all"
-             height="190"
+             height="180"
              layout="topleft"
              left="10"
              name="owner list"
@@ -1313,7 +1324,7 @@ Only large parcels can be listed in search.
              width="430" />
             <combo_box
              enabled="false"
-             height="20"
+             height="23"
              layout="topleft"
              left="30"
              name="land category with adult"
@@ -1374,7 +1385,7 @@ Only large parcels can be listed in search.
             </combo_box>
             <combo_box
              enabled="false"
-             height="20"
+             height="23"
              layout="topleft"
              left="30"
              name="land category"
@@ -1463,7 +1474,7 @@ Only large parcels can be listed in search.
              type="string"
              length="1"
              follows="left|top"
-             height="30"
+             height="16"
              layout="topleft"
              left="220"
              top="180"
@@ -1553,12 +1564,13 @@ Only large parcels can be listed in search.
                 Type:
             </text>
             <combo_box
-             height="20"
+             height="23"
              layout="topleft"
              left_pad="0"
              name="media type"
              tool_tip="Specify if the URL is a movie, web page, or other media"
-             width="120" />
+             width="120"
+             top_delta="0"/>
             <text
              follows="left|top"
              height="16"
@@ -1574,27 +1586,29 @@ Only large parcels can be listed in search.
              layout="topleft"
              left="10"
              name="at URL:"
-             width="100">
+             width="100"
+             top_pad="10">
                 Home Page:
             </text>
             <line_editor
              follows="left|top"
-             height="20"
+             height="23"
              layout="topleft"
              left_pad="0"
              max_length="255"
              name="media_url"
              select_on_focus="true"
-             width="300" />
+             width="300"
+             top_delta="0"/>
             <button
              follows="right|top"
-             height="22"
+             height="23"
              label="Set"
              layout="topleft"
              left_pad="5"
-             right="-10"
              name="set_media_url"
-             width="50" />
+             width="50"
+             top_delta="0"/>
             <text
              type="string"
              length="1"
@@ -1603,18 +1617,20 @@ Only large parcels can be listed in search.
              layout="topleft"
              left="10"
              name="CurrentURL:"
-             width="100">
+             width="100"
+             top_pad="10">
                 Current Page:
             </text>
-             <button
-     follows="top|right"
-     height="20"
-     image_overlay="Refresh_Off"
-     layout="topleft"
+            <button
+             follows="top|right"
+             height="23"
+             image_overlay="Refresh_Off"
+             layout="topleft"
              name="reset_media_url"
-     left_pad="0"
-     tool_tip="Refresh URL"
-     width="20" />
+             left_pad="0"
+             tool_tip="Refresh URL"
+             width="23"
+             top_delta="0"/>
             <text
              follows="left|top"
              height="16"
@@ -1623,22 +1639,25 @@ Only large parcels can be listed in search.
              name="current_url"
              width="300" />
             <check_box
+             follows="top|left"
              height="16"
              label="Hide URL"
              layout="topleft"
-             left="110"
+             left_delta="-36"
              name="hide_media_url"
              tool_tip="Checking this option will hide the media url to any non-authorized viewers of this parcel information. Note this is not available for HTML types."
-             width="200" />
+             width="50"
+             top_pad="5"/>
             <text
              type="string"
              length="1"
              follows="left|top"
-             height="16"
+             height="23"
              layout="topleft"
              left="10"
              name="Description:"
-             width="364">
+             width="364"
+             top_pad="10">
                 Description:
             </text>
             <line_editor
@@ -1650,7 +1669,7 @@ Only large parcels can be listed in search.
              name="url_description"
              select_on_focus="true"
              tool_tip="Text displayed next to play/load button"
-             top_delta="10"
+             top_delta="0"
              width="300" />
             <text
              type="string"
@@ -1674,7 +1693,7 @@ Only large parcels can be listed in search.
              left="110"
              name="media texture"
              tool_tip="Click to choose a picture"
-             top_delta="10"
+             top_delta="0"
              width="64" />
             <text
              type="string"
@@ -1685,16 +1704,17 @@ Only large parcels can be listed in search.
              left_pad="8"
              name="replace_texture_help"
              width="300"
-             word_wrap="true">
+             word_wrap="true"
+             top_delta="0">
              Objects using this texture will show the movie or web page after you click the play arrow.  Select the thumbnail to choose a different texture.
             </text>
             <check_box
              height="16"
              label="Auto scale"
              layout="topleft"
-             left="110"
+             left="107"
              name="media_auto_scale"
-             top_pad="0"
+             top_pad="-10"
              tool_tip="Checking this option will scale the content for this parcel automatically. It may be slightly slower and lower quality visually but no other texture scaling or alignment will be required."
              width="200" />
             <text
@@ -1706,7 +1726,8 @@ Only large parcels can be listed in search.
              left="10"
              name="media_size"
              tool_tip="Size to render Web media, leave 0 for default."
-             width="100">
+             width="100"
+             top_pad="10">
                 Size:
             </text>
             <spinner
@@ -1714,7 +1735,7 @@ Only large parcels can be listed in search.
              enabled="false"
              follows="left|top"
              halign="right"
-             height="20"
+             height="23"
              increment="1"
              initial_value="0"
              layout="topleft"
@@ -1729,7 +1750,7 @@ Only large parcels can be listed in search.
              enabled="false"
              follows="left|top"
              halign="right"
-             height="20"
+             height="23"
              increment="1"
              initial_value="0"
              layout="topleft"
@@ -1759,7 +1780,7 @@ Only large parcels can be listed in search.
              layout="topleft"
              left="10"
              name="Options:"
-             top_pad="8"
+             top_pad="10"
              width="100">
                 Options:
             </text>
@@ -1767,10 +1788,10 @@ Only large parcels can be listed in search.
              height="16"
              label="Loop"
              layout="topleft"
-             left_pad="0"
+             left_pad="-3"
              name="media_loop"
              tool_tip="Play media in a loop.  When the media has finished playing, it will restart from the beginning."
-             top_delta="0"
+             top_delta="-1"
              width="200" />
         </panel>
         <panel
@@ -1796,12 +1817,12 @@ Only large parcels can be listed in search.
             </text>
             <line_editor
              follows="left|top"
-             height="20"
+             height="23"
              layout="topleft"
              left="100"
              max_length="255"
              name="music_url"
-             top_pad="0"
+             top_delta="0"
              right="-15"
              select_on_focus="true" />
             <text
@@ -1941,7 +1962,7 @@ Only large parcels can be listed in search.
              width="278" />
             <check_box
              enabled="false"
-             height="22"
+             height="16"
              label="Sell passes to:"
              layout="topleft"
              left_delta="0"
@@ -1950,7 +1971,7 @@ Only large parcels can be listed in search.
              top_pad="4"
              width="120" />
             <combo_box
-             height="20"
+             height="23"
              layout="topleft"
              left_pad="22"
              name="pass_combo"
@@ -1968,7 +1989,7 @@ Only large parcels can be listed in search.
             <spinner
              enabled="false"
              follows="left|top"
-             height="22"
+             height="23"
              increment="1"
              initial_value="10"
              label="Price in L$:"
@@ -1983,7 +2004,7 @@ Only large parcels can be listed in search.
             <spinner
              enabled="false"
              follows="left|top"
-             height="22"
+             height="23"
              increment="0.25"
              initial_value="1"
              label="Hours of access:"
diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml
index ccbba61ddfb576372c8021e693477bb182e1db81..d97ca554b7b2fb35716a1a5ef61c40c28affc5b6 100644
--- a/indra/newview/skins/default/xui/en/floater_im_container.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_container.xml
@@ -19,6 +19,7 @@
      name="im_box_tab_container"
      tab_position="bottom"
      tab_width="80"
+     tab_height="16"
      top="0"
      width="390" />
     <icon
diff --git a/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c3d84de9a79b0e1979e1ed185e3fd1d4b7f8c434
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+ legacy_header_height="18"
+ border="true"
+ can_close="false"
+ can_minimize="false"
+ height="100"
+ layout="topleft"
+ name="modal container"
+ width="240">
+    <button
+     height="20"
+     label="Save"
+     label_selected="Save"
+     layout="topleft"
+     left="20"
+     name="Save"
+     top="70"
+     width="82" />
+    <button
+     height="20"
+     label="Cancel"
+     label_selected="Cancel"
+     layout="topleft"
+     left_pad="36"
+     name="Cancel"
+     top_delta="0"
+     width="82" />
+    <text
+     type="string"
+     length="1"
+     follows="left|top"
+     font="SansSerif"
+     height="16"
+     layout="topleft"
+     left="20"
+     name="Save item as:"
+     top="10"
+     width="200">
+        Save outfit as:
+    </text>
+    <line_editor
+     type="string"
+     length="1"
+     border_style="line"
+     border_thickness="1"
+     follows="left|top"
+     font="SansSerif"
+     handle_edit_keys_directly="true"
+     height="20"
+     layout="topleft"
+     left_delta="0"
+     max_length="63"
+     name="name ed"
+     top_pad="4"
+     width="200">
+        [DESC]
+    </line_editor>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
index 4642e82c0b20bf29e51c4f258e87d218c02ce3cf..d96f3c5494090f1082c674dfc80898ab8774321b 100644
--- a/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_gesture_gear.xml
@@ -17,7 +17,7 @@
      layout="topleft"
      name="copy_gesture">
         <on_click
-         function="Gesture.Action.CopyPast"
+         function="Gesture.Action.CopyPaste"
          parameter="copy_gesture" />
         <on_enable
          function="Gesture.EnableAction"
@@ -28,7 +28,7 @@
      layout="topleft"
      name="paste">
         <on_click
-         function="Gesture.Action.CopyPast"
+         function="Gesture.Action.CopyPaste"
          parameter="paste" />
         <on_enable
          function="Gesture.EnableAction"
@@ -39,7 +39,7 @@
      layout="topleft"
      name="copy_uuid">
         <on_click
-         function="Gesture.Action.CopyPast"
+         function="Gesture.Action.CopyPaste"
          parameter="copy_uuid" />
         <on_enable
          function="Gesture.EnableAction"
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index e20e5a85c09944e1d292a51e131cf182f6055e06..957b4d74dbe5539f7d50b5cea735c76b7660c1f1 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -811,6 +811,7 @@ Please select a proposal to view.
 Please select a history item to view.
   </notification>
 
+<!--   
   <notification
    icon="alertmodal.tga"
    name="ResetShowNextTimeDialogs"
@@ -832,6 +833,7 @@ Would you like to disable all popups which can be skipped?
      notext="Cancel"
      yestext="OK"/>
   </notification>
+-->
 
   <notification
    icon="alertmodal.tga"
@@ -5368,6 +5370,7 @@ Grant this request?
     </form>
   </notification>
 
+<!--
   <notification
    icon="notify.tga"
    name="FirstBalanceIncrease"
@@ -5383,6 +5386,7 @@ Your L$ balance is shown in the upper-right.
 You just paid L$[AMOUNT].
 Your L$ balance is shown in the upper-right.
   </notification>
+-->
 
   <notification
    icon="notify.tga"
@@ -5394,6 +5398,8 @@ Your L$ balance will be updated when processing completes. If processing takes m
 
 The status of your payment can be checked on your Transaction History page on your [http://secondlife.com/account/ Dashboard]
   </notification>
+  
+<!-- 
   <notification
    icon="notify.tga"
    name="FirstSit"
@@ -5418,8 +5424,9 @@ Use the controls on the right to find things and display different backgrounds.
    type="notify">
 You have opened the Build Tools. Every object you see around you was created using these tools.
   </notification>
+-->
 
-<!--
+<!--  
   <notification
    icon="notify.tga"
    name="FirstLeftClickNoHit"
@@ -5428,7 +5435,7 @@ You have opened the Build Tools. Every object you see around you was created usi
     If the mouse pointer changes to a hand, you can interact with the object.
     Right-click always shows a menu of things you can do.
   </notification>
--->
+
   <notification
    icon="notify.tga"
    name="FirstTeleport"
@@ -5436,6 +5443,8 @@ You have opened the Build Tools. Every object you see around you was created usi
 You can only teleport to certain areas in this region. The arrow points to your specific destination. Click the arrow to dismiss it.
   </notification>
 
+-->
+
   <notification
    icon="notify.tga"
    name="FirstOverrideKeys"
@@ -5446,6 +5455,7 @@ Some objects (like guns) require you to go into mouselook  to use them.
 Press &apos;M&apos; to do this.
   </notification>
 
+<!--
   <notification
    icon="notify.tga"
    name="FirstAppearance"
@@ -5465,6 +5475,7 @@ This is your Inventory, which contains items you own.
 * To rez something inworld, drag it onto the ground.
 * To read a notecard, double-click it.
   </notification>
+-->
 
   <notification
    icon="notify.tga"
@@ -5475,6 +5486,7 @@ This is a sandbox area, and is meant to help Residents learn how to build.
 Things you build here will be deleted after you leave, so don&apos;t forget to right-click and choose &apos;Take&apos; to move your creation to your Inventory.
   </notification>
 
+<!--
   <notification
    icon="notify.tga"
    name="FirstFlexible"
@@ -5500,13 +5512,16 @@ To toggle this menu,
    type="notify">
 You are editing a Sculpted prim. Sculpties require a special texture to define their shape.
   </notification>
+-->  
 
-  <!--notification
+  <!--
+  <notification
    icon="notify.tga"
    name="FirstMedia"
    type="notify">
     You have begun playing media.  Media can set to play automatically in the preferences window under Audio / Video. Note that this can be a security risk for media sites you do not trust.
-  </notification-->
+  </notification>
+  -->
 
   <notification
    icon="notifytip.tga"
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 4b39210f30c98aa3bda133bcef1a5d1d39c7da78..de3de45718873d2edeccc035c55156af580b60e8 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -382,6 +382,17 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well
          width="40"
          min_width="40"
          user_resize="false">
+         <icon
+         auto_resize="false"
+         color="0 0 0 0"
+         follows="left|right"
+         height="10"
+         image_name="spacer24.tga"
+         layout="topleft"
+         left="0"
+         min_width="4"
+         top="0"
+         width="5" />
             <chiclet_notification
              flash_period="0.25"
              follows="right"
@@ -414,6 +425,17 @@ image_pressed_selected  "Lit" + "Selected" - there are new messages and the Well
                    function="Button.SetDockableFloaterToggle"
                    parameter="notification_well_window" />
               </button>
+                      <icon
+         auto_resize="false"
+         color="0 0 0 0"
+         follows="left|right"
+         height="10"
+         image_name="spacer24.tga"
+         layout="topleft"
+         left="0"
+         min_width="4"
+         top="0"
+         width="5" />
 	    </chiclet_notification>
         </layout_panel>
     </layout_stack>
diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml
index 5c594d3f1422ba60d30d3c155328f5c6794e12a6..677bdbc3d2b9689118baca74b77847513c80984f 100644
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
@@ -7,6 +7,7 @@
  left="0"
  min_height="350"
  name="panel_classified_info"
+ help_topic="profile_classified_info"
  top="0"
  width="333">
  <panel.string
diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
index 1fbf7abda9d58318ae786c187832ae1acbfdaa29..188ded3dabaf12663635343a52ade9eb2de2c199 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -9,6 +9,7 @@
  left="0"
  min_height="350"
  name="panel_edit_classified"
+ help_topic="profile_edit_classified"
  top="0"
  width="333">
  <panel.string
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 7769189219c7584b8eebbba1f7e9b71caebe7042..15eff4b67c14596448fe2c7177d7f1a2d2d58aab 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -9,6 +9,7 @@
  left="0"
  min_height="350"
  name="panel_edit_pick"
+ help_topic="profile_edit_pick"
  top="0"
  width="333">
   <button
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index 9d00abd2c9563e91e723480db6d0c2b456211099..4030c7184ade70fa23cb4b64c3fa40d1fa805698 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -41,6 +41,7 @@ halign="center"
          follows="all"
          height="295"
          label="MY INVENTORY"
+         help_topic="my_inventory_tab"
          layout="topleft"
          left="0"
          name="All Items"
@@ -51,6 +52,7 @@ halign="center"
          follows="all"
          height="295"
          label="RECENT"
+         help_topic="recent_inventory_tab"
          layout="topleft"
          left_delta="0"
          name="Recent Items"
diff --git a/indra/newview/skins/default/xui/en/panel_pick_info.xml b/indra/newview/skins/default/xui/en/panel_pick_info.xml
index 9c7f38e68886b5279cd4cbf4a0b551d3abe7c85c..822e049eec040045203412ed1c81be934b694e46 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -7,6 +7,7 @@
  left="0"
  min_height="350"
  name="panel_pick_info"
+ help_topic="profile_pick_info"
  top="0"
  width="333">
     <button
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 1fc553ff36da93e4938f19d9ac940275a2fa5c63..a2b0adf9d9835d9f16a459712fb24360e4a8884d 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -124,7 +124,6 @@
          height="25"
          top_pad="10"
          name="buttons_cucks"
-         help_topic="picks_button_tab"
          width="313">
        <button
          enabled="false"
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
index 18d0f8acabfb5472e5c24d3164de12daefc6dba3..ace8281b4e3cb5935c1ac0df4ff7bee23182f6d3 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
@@ -31,7 +31,6 @@
      width="300" />
     <check_box
      control_name="ChatOnlineNotification"
-	 enabled="false"
      height="16"
      label="When my friends log out or in"
      layout="topleft"
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 1dd4eb095ced583070fa036d7b92f27947652f83..ab3cc036d5b0e914d566a5c635699dd04702f3f6 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
@@ -4,7 +4,6 @@
  follows="all"
  height="570"
  min_height="350"
- label="home_tab"
  help_topic="sidetray_home"
  layout="topleft"
  top="0"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
index 51974be854e72d2472aaafa1cbd8f586e6e9a02d..fb5f9d2ec80d70b711ff96ab39b768b94ce1c1a6 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
@@ -33,7 +33,6 @@
 		<panel
 			 height="25"
 			 layout="bottomright"
-			 help_topic="item_button_tab"
 			 name="button_panel"
 			 left="5"
 			 bottom="5"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
index 4a992dadd9aca8cf192adbfb96de3c834a95264a..e18f59ab648a9ce4592861230f7b87a644aa913b 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -401,7 +401,6 @@ top_pad="10"
     <panel
 		 height="30"
 		 layout="bottomright"
-		 help_topic="button_tab"
 		 name="button_panel"
 		 left="5"
 		 bottom="2"
@@ -414,4 +413,4 @@ top_pad="10"
 		     right="-1"
 		     width="100" />
 	    </panel>
-	</panel>
\ No newline at end of file
+	</panel>
diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
index 2dfcdf4a4cf35633ab3a23cc354a068e7cd5eff1..74f97dca4eeea531d638594554bc2c34420cbdad 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
@@ -518,7 +518,6 @@
     <panel
 		 height="25"
 		 layout="bottomright"
-		 help_topic="button_tab"
 		 name="button_panel"
 		 left="5"
 		 bottom="5"
@@ -551,4 +550,4 @@
 		     top="0"
 		     width="100" />
 	</panel>
-</panel>
\ No newline at end of file
+</panel>
diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp
index d7dd199722e8dd60b1ce6c46701d50b5fb70ab02..297d98ad8d2322ce67a3f5976fbe54cb6a2492ee 100644
--- a/indra/newview/tests/llviewerhelputil_test.cpp
+++ b/indra/newview/tests/llviewerhelputil_test.cpp
@@ -83,6 +83,9 @@ class LLAgent
 public:
 	LLAgent() {}
 	~LLAgent() {}
+#ifdef __GNUC__
+	__attribute__ ((noinline))
+#endif
 	BOOL isGodlike() const { return FALSE; }
 private:
 	int dummy;