diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp
index f14d947734e01534e2ed6381417b7ec46126fb3c..1561bda2018d0539c9bce6ea5d597e44a3589a82 100644
--- a/indra/llcommon/llstring.cpp
+++ b/indra/llcommon/llstring.cpp
@@ -994,7 +994,14 @@ void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
 	convertToS32 (decimals, intDecimals);
 	if (!sLocale.empty())
 	{
-		strStream.imbue (std::locale(sLocale.c_str()));
+		// std::locale() throws if the locale is unknown! (EXT-7926)
+		try
+		{
+			strStream.imbue(std::locale(sLocale.c_str()));
+		} catch (const std::exception &)
+		{
+			LL_WARNS_ONCE("Locale") << "Cannot set locale to " << sLocale << LL_ENDL;
+		}
 	}
 
 	if (!intDecimals)
diff --git a/indra/llcommon/lluuid.cpp b/indra/llcommon/lluuid.cpp
index 583c1e589b473158536fe4e396b2729c590732b2..3bab01715ae1e3eff8415d2f3f845428ef4f5b7d 100644
--- a/indra/llcommon/lluuid.cpp
+++ b/indra/llcommon/lluuid.cpp
@@ -456,101 +456,53 @@ static void get_random_bytes(void *buf, int nbytes)
 }
 
 #if	LL_WINDOWS
-// Code	copied from	http://msdn.microsoft.com/en-us/library/aa365939(VS.85).aspx
-// This	code grabs the first hardware	address, rather	than the first interface.
-// Using a VPN can cause the first returned	interface	to be	changed.
-
-const	S32	MAC_ADDRESS_BYTES=6;
 
+typedef struct _ASTAT_
+{
+	ADAPTER_STATUS adapt;
+	NAME_BUFFER    NameBuff [30];
+}ASTAT, * PASTAT;
 
 // static
 S32	LLUUID::getNodeID(unsigned char	*node_id)
 {
+	ASTAT Adapter;
+	NCB Ncb;
+	UCHAR uRetCode;
+	LANA_ENUM   lenum;
+	int      i;
+	int retval = 0;
 
-	// Declare and initialize variables.
-	DWORD	dwSize = 0;
-	DWORD	dwRetVal = 0;
-	int	i;
-
-/* variables used	for	GetIfTable and GetIfEntry	*/
-	MIB_IFTABLE	*pIfTable;
-	MIB_IFROW	*pIfRow;
+	memset( &Ncb, 0, sizeof(Ncb) );
+	Ncb.ncb_command = NCBENUM;
+	Ncb.ncb_buffer = (UCHAR *)&lenum;
+	Ncb.ncb_length = sizeof(lenum);
+	uRetCode = Netbios( &Ncb );
 
-	// Allocate	memory for our pointers.
-	pIfTable = (MIB_IFTABLE	*) malloc(sizeof (MIB_IFTABLE));
-	if (pIfTable ==	NULL)	
+	for(i=0; i < lenum.length ;i++)
 	{
-			printf("Error allocating memory needed to call GetIfTable\n");
-			return 0;
-	}
+		memset( &Ncb, 0, sizeof(Ncb) );
+		Ncb.ncb_command = NCBRESET;
+		Ncb.ncb_lana_num = lenum.lana[i];
 
-	// Before	calling	GetIfEntry,	we call	GetIfTable to	make
-	// sure	there	are	entries	to get and retrieve	the	interface	index.
+		uRetCode = Netbios( &Ncb );
 
-	// Make	an initial call	to GetIfTable	to get the
-	// necessary size	into dwSize
-	if (GetIfTable(pIfTable, &dwSize,	0) ==	ERROR_INSUFFICIENT_BUFFER) {
-			free(pIfTable);
-			pIfTable = (MIB_IFTABLE	*) malloc(dwSize);
-			if (pIfTable ==	NULL)	
-			{
-					printf("Error	allocating memory\n");
-					return 0;
-			}
-	}
-	//	Make a second	call to	GetIfTable to	get	the	actual
-	// data	we want.
-	if ((dwRetVal = GetIfTable(pIfTable, &dwSize,	0))	== NO_ERROR) 
-	{
-		if (pIfTable->dwNumEntries > 0)	
-		{
-			pIfRow = (MIB_IFROW	*) malloc(sizeof (MIB_IFROW));
-			if (pIfRow ==	NULL)	
-			{
-					printf("Error allocating memory\n");
-					if (pIfTable != NULL)	
-					{
-						free(pIfTable);
-						pIfTable = NULL;
-					}
-					return 0;
-			}
+		memset( &Ncb, 0, sizeof (Ncb) );
+		Ncb.ncb_command = NCBASTAT;
+		Ncb.ncb_lana_num = lenum.lana[i];
 
-			int	limit	=	MAC_ADDRESS_BYTES;
-			memcpy(node_id,	"\0\0\0\0\0\0",	limit);	// zero	out	array	of bytes	 
-			for	(i = 0;	i < (int) pIfTable->dwNumEntries; i++) 
-			{
-				pIfRow->dwIndex	= pIfTable->table[i].dwIndex;
-				if ((dwRetVal = GetIfEntry(pIfRow)) == NO_ERROR) 
-				{
-					switch (pIfRow->dwType)	
-					{
-						case IF_TYPE_ETHERNET_CSMACD:
-						case IF_TYPE_IEEE80211:		 
-							 limit = min((int) pIfRow->dwPhysAddrLen, limit);
-							 if	(pIfRow->dwPhysAddrLen == 0)
-									 break;
-							 memcpy(node_id, (UCHAR *)&pIfRow->bPhysAddr[0], limit);		 //	just incase	the	PhysAddr is	not	the	expected MAC_Address size
-							 free(pIfTable);
-							 return 1;	//return first hardware	device found.	
-							break;
-
-						case IF_TYPE_OTHER:
-						case IF_TYPE_PPP:										 
-						case IF_TYPE_SOFTWARE_LOOPBACK:										 
-						case IF_TYPE_ISO88025_TOKENRING:										
-						case IF_TYPE_IEEE1394:																		
-						case IF_TYPE_ATM:										 
-						case IF_TYPE_TUNNEL:										
-								default:
-									break;
-					}
-				}
-			}
+		strcpy( (char *)Ncb.ncb_callname,  "*              " );		/* Flawfinder: ignore */
+		Ncb.ncb_buffer = (unsigned char *)&Adapter;
+		Ncb.ncb_length = sizeof(Adapter);
+
+		uRetCode = Netbios( &Ncb );
+		if ( uRetCode == 0 )
+		{
+			memcpy(node_id,Adapter.adapt.adapter_address,6);		/* Flawfinder: ignore */
+			retval = 1;
 		}
 	}
-	free(pIfTable);
-	return 0;
+	return retval;
 }
 
 #elif LL_DARWIN
diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp
index 34f3049f2e296242ec53c04882eda778d1f73f61..39e46a7ccb7e465dbcc16d459a06de1b5b2dc214 100644
--- a/indra/llui/llbutton.cpp
+++ b/indra/llui/llbutton.cpp
@@ -1162,3 +1162,10 @@ void LLButton::resetMouseDownTimer()
 	mMouseDownTimer.stop();
 	mMouseDownTimer.reset();
 }
+
+
+BOOL LLButton::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+	// just treat a double click as a second click
+	return handleMouseDown(x, y, mask);
+}
diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h
index 9bd566d3c9640d757b2884c829d0319fc902e526..d7ab030a47082db75929b1df0dcfdbdb0505ba1f 100644
--- a/indra/llui/llbutton.h
+++ b/indra/llui/llbutton.h
@@ -152,6 +152,7 @@ class LLButton
 	virtual BOOL	handleHover(S32 x, S32 y, MASK mask);
 	virtual BOOL	handleRightMouseDown(S32 x, S32 y, MASK mask);
 	virtual BOOL	handleRightMouseUp(S32 x, S32 y, MASK mask);	
+	virtual BOOL	handleDoubleClick(S32 x, S32 y, MASK mask);
 	virtual void	draw();
 	/*virtual*/ BOOL postBuild();
 
diff --git a/indra/llui/llspinctrl.cpp b/indra/llui/llspinctrl.cpp
index c0d02fa8e936fb3ad3503174fc77c214f99832af..ac0c9c3e451d66796ea72d7dbc5ffa237691ddc5 100644
--- a/indra/llui/llspinctrl.cpp
+++ b/indra/llui/llspinctrl.cpp
@@ -466,8 +466,3 @@ BOOL LLSpinCtrl::handleKeyHere(KEY key, MASK mask)
 	return FALSE;
 }
 
-BOOL LLSpinCtrl::handleDoubleClick(S32 x, S32 y, MASK mask)
-{
-	// just treat a double click as a second click
-	return handleMouseDown(x, y, mask);
-}
diff --git a/indra/llui/llspinctrl.h b/indra/llui/llspinctrl.h
index 06201255d2d5fef12cd8343bf44fba69931cbfbe..00d6f86f8375906245ebf6d23a01a403d43fa0ea 100644
--- a/indra/llui/llspinctrl.h
+++ b/indra/llui/llspinctrl.h
@@ -94,7 +94,6 @@ class LLSpinCtrl
 
 	virtual BOOL	handleScrollWheel(S32 x,S32 y,S32 clicks);
 	virtual BOOL	handleKeyHere(KEY key, MASK mask);
-	virtual BOOL	handleDoubleClick(S32 x, S32 y, MASK mask);
 
 	void			onEditorCommit(const LLSD& data);
 	static void		onEditorGainFocus(LLFocusableElement* caller, void *userdata);
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 2d0d5c12cbce34a82461f4dacd848b2c2ac49660..17e41d9e24de83cd589475247092da8cc7cef8b2 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1630,7 +1630,7 @@ void LLTextBase::appendTextImpl(const std::string &new_text, const LLStyle::Para
 					// Text will be replaced during rendering with the icon,
 					// but string cannot be empty or the segment won't be
 					// added (or drawn).
-					appendImageSegment(part, icon);
+					appendImageSegment(icon);
 				}
 			}
 
@@ -1702,7 +1702,7 @@ void LLTextBase::appendLineBreakSegment(const LLStyle::Params& style_params)
 	insertStringNoUndo(getLength(), utf8str_to_wstring("\n"), &segments);
 }
 
-void LLTextBase::appendImageSegment(S32 highlight_part, const LLStyle::Params& style_params)
+void LLTextBase::appendImageSegment(const LLStyle::Params& style_params)
 {
 	if(getPlainText())
 	{
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index 92876e20d6fbc97438c41dd65d74babc6a0a6d6f..fe8ebb1b800f83643488a1aae782a8325c756d6e 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -196,6 +196,9 @@ class LLTextBase
 
 	const LLFontGL*			getDefaultFont() const					{ return mDefaultFont; }
 
+	void					appendLineBreakSegment(const LLStyle::Params& style_params);
+	void					appendImageSegment(const LLStyle::Params& style_params);
+
 public:
 	// Fired when a URL link is clicked
 	commit_signal_t mURLClickSignal;
@@ -319,9 +322,6 @@ class LLTextBase
 	void							updateRects();
 	void							needsScroll() { mScrollNeeded = TRUE; }
 	void							replaceUrlLabel(const std::string &url, const std::string &label);
-
-	void							appendLineBreakSegment(const LLStyle::Params& style_params);
-	void							appendImageSegment(S32 highlight_part, const LLStyle::Params& style_params);
 	
 	void							appendTextImpl(const std::string &new_text, const LLStyle::Params& input_params = LLStyle::Params());
 	void							appendAndHighlightTextImpl(const std::string &new_text, S32 highlight_part, const LLStyle::Params& style_params);
diff --git a/indra/llwindow/llwindowmacosx-objc.mm b/indra/llwindow/llwindowmacosx-objc.mm
index 59b25e17268ca57fc4c4d90b0bf46ac7bb601a49..3a822a93a668690ff016e0d3dbeebcdb3a8f50d2 100644
--- a/indra/llwindow/llwindowmacosx-objc.mm
+++ b/indra/llwindow/llwindowmacosx-objc.mm
@@ -49,6 +49,11 @@ void setupCocoa()
 	{
 		NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
 		
+		// The following prevents the Cocoa command line parser from trying to open 'unknown' arguements as documents.
+		// ie. running './secondlife -set Language fr' would cause a pop-up saying can't open document 'fr' 
+		// when init'ing the Cocoa App window.		
+		[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"NSTreatUnknownArgumentsAsOpen"];
+		
 		// This is a bit of voodoo taken from the Apple sample code "CarbonCocoa_PictureCursor":
 		//   http://developer.apple.com/samplecode/CarbonCocoa_PictureCursor/index.html
 		
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index 97e24a0bd560a052985c09e36acd4fb9a8f0b9b2..9bc95f9b95d9ccd30416fa9c6a85c5facf027132 100644
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
 	<key>CFBundleDevelopmentRegion</key>
@@ -18,33 +18,33 @@
 	<string>APPL</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
-        <key>CFBundleDocumentTypes</key>
-        <array>
-                <dict>
-                        <key>CFBundleTypeExtensions</key>
-                        <array>
-                                <string>slurl</string>
-                        </array>
-                        <key>CFBundleTypeIconFile</key>
-                        <string>seconlife</string>
-                        <key>CFBundleTypeMIMETypes</key>
-                        <array>
-                                <string>application/x-grid-location-info</string>
-                        </array>
-                        <key>CFBundleTypeName</key>
-                        <string>Secondlife SLURL</string>
+	<key>CFBundleDocumentTypes</key>
+	<array>
+		<dict>
+			<key>CFBundleTypeExtensions</key>
+			<array>
+				<string>slurl</string>
+			</array>
+			<key>CFBundleTypeIconFile</key>
+			<string>seconlife</string>
+			<key>CFBundleTypeMIMETypes</key>
+			<array>
+				<string>application/x-grid-location-info</string>
+			</array>
+			<key>CFBundleTypeName</key>
+			<string>Secondlife SLURL</string>
 			<key>CFBundleTypeOSTypes</key>
 			<array>
-			  <string>SLRL</string>
+				<string>SLRL</string>
 			</array>
-                        <key>CFBundleTypeRole</key>
-                        <string>Viewer</string>
-                        <key>LSTypeIsPackage</key>
+			<key>CFBundleTypeRole</key>
+			<string>Viewer</string>
+			<key>LSTypeIsPackage</key>
 			<true/>
-                        <key>NSDocumentClass</key>
-                        <string>SecondLifeSLURL</string>
-                </dict>
-        </array>
+			<key>NSDocumentClass</key>
+			<string>SecondLifeSLURL</string>
+		</dict>
+	</array>
 	<key>CFBundleURLTypes</key>
 	<array>
 		<dict>
diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp
index 931aba1d416255959645917026f10358b1d7f0d7..0a2f0e9399d86ed5b9cad896c8521e7145cdada5 100644
--- a/indra/newview/llagentwearablesfetch.cpp
+++ b/indra/newview/llagentwearablesfetch.cpp
@@ -48,6 +48,12 @@ class LLOrderMyOutfitsOnDestroy: public LLInventoryCallback
 
 	virtual ~LLOrderMyOutfitsOnDestroy()
 	{
+		if (LLApp::isExiting())
+		{
+			llwarns << "called during shutdown, skipping" << llendl;
+			return;
+		}
+		
 		const LLUUID& my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
 		if (my_outfits_id.isNull()) return;
 
@@ -241,6 +247,8 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
 	mCurrFetchStep(LOFS_FOLDER), 
 	mOutfitsPopulated(false) 
 {
+	llinfos << "created" << llendl;
+
 	mMyOutfitsID = LLUUID::null;
 	mClothingID = LLUUID::null;
 	mLibraryClothingID = LLUUID::null;
@@ -250,10 +258,13 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
 
 LLLibraryOutfitsFetch::~LLLibraryOutfitsFetch()
 {
+	llinfos << "destroyed" << llendl;
 }
 
 void LLLibraryOutfitsFetch::done()
 {
+	llinfos << "start" << llendl;
+
 	// Delay this until idle() routine, since it's a heavy operation and
 	// we also can't have it run within notifyObservers.
 	doOnIdleOneTime(boost::bind(&LLLibraryOutfitsFetch::doneIdle,this));
@@ -262,6 +273,8 @@ void LLLibraryOutfitsFetch::done()
 
 void LLLibraryOutfitsFetch::doneIdle()
 {
+	llinfos << "start" << llendl;
+
 	gInventory.addObserver(this); // Add this back in since it was taken out during ::done()
 	
 	switch (mCurrFetchStep)
@@ -302,6 +315,8 @@ void LLLibraryOutfitsFetch::doneIdle()
 
 void LLLibraryOutfitsFetch::folderDone()
 {
+	llinfos << "start" << llendl;
+
 	LLInventoryModel::cat_array_t cat_array;
 	LLInventoryModel::item_array_t wearable_array;
 	gInventory.collectDescendents(mMyOutfitsID, cat_array, wearable_array, 
@@ -309,8 +324,7 @@ void LLLibraryOutfitsFetch::folderDone()
 	
 	// Early out if we already have items in My Outfits
 	// except the case when My Outfits contains just initial outfit
-	if (cat_array.count() > 1 ||
-		cat_array.count() == 1 && cat_array[0]->getUUID() != LLAppearanceMgr::getInstance()->getBaseOutfitUUID())
+	if (cat_array.count() > 1)
 	{
 		mOutfitsPopulated = true;
 		return;
@@ -348,6 +362,8 @@ void LLLibraryOutfitsFetch::folderDone()
 
 void LLLibraryOutfitsFetch::outfitsDone()
 {
+	llinfos << "start" << llendl;
+
 	LLInventoryModel::cat_array_t cat_array;
 	LLInventoryModel::item_array_t wearable_array;
 	uuid_vec_t folders;
@@ -425,6 +441,8 @@ class LLLibraryOutfitsCopyDone: public LLInventoryCallback
 // Copy the clothing folders from the library into the imported clothing folder
 void LLLibraryOutfitsFetch::libraryDone()
 {
+	llinfos << "start" << llendl;
+
 	if (mImportedClothingID != LLUUID::null)
 	{
 		// Skip straight to fetching the contents of the imported folder
@@ -480,6 +498,8 @@ void LLLibraryOutfitsFetch::libraryDone()
 
 void LLLibraryOutfitsFetch::importedFolderFetch()
 {
+	llinfos << "start" << llendl;
+
 	// Fetch the contents of the Imported Clothing Folder
 	uuid_vec_t folders;
 	folders.push_back(mImportedClothingID);
@@ -495,6 +515,8 @@ void LLLibraryOutfitsFetch::importedFolderFetch()
 
 void LLLibraryOutfitsFetch::importedFolderDone()
 {
+	llinfos << "start" << llendl;
+
 	LLInventoryModel::cat_array_t cat_array;
 	LLInventoryModel::item_array_t wearable_array;
 	uuid_vec_t folders;
@@ -525,6 +547,8 @@ void LLLibraryOutfitsFetch::importedFolderDone()
 
 void LLLibraryOutfitsFetch::contentsDone()
 {		
+	llinfos << "start" << llendl;
+
 	LLInventoryModel::cat_array_t cat_array;
 	LLInventoryModel::item_array_t wearable_array;
 	
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index ab97dbb69539510589fe5b8cd26e9afd24854374..ac12bffdfbc056a75c0ed4021c70fe5ee64e54ca 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -666,13 +666,13 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
 					slurl = region_slurl.getLocationString();
 				      }
 				}
-				url += "&slurl=" + slurl;
+				url += "&slurl=" + LLURI::escape(slurl);
 
 				// set the link for the object name to be the objectim SLapp
 				// (don't let object names with hyperlinks override our objectim Url)
 				LLStyle::Params link_params(style_params);
 				link_params.color.control = "HTMLLinkColor";
-				link_params.link_href = LLURI::escape(url);
+				link_params.link_href = url;
 				mEditor->appendText("<nolink>" + chat.mFromName + "</nolink>"  + delimiter,
 									false, link_params);
 			}
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 7c5586ec961f35edc5a9110c23712cae7c19e370..76263a4307b14b61a37086ec6719e27d0cc377ac 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -3022,8 +3022,9 @@ void insert_maturity_into_textbox(LLTextBox* target_textbox, LLFloater* names_fl
 	std::string text_after_rating = str_to_parse.substr(maturity_pos + MATURITY.length());
 
 	target_textbox->setText(text_before_rating);
-	// any text may be here instead of "icon" except ""
-	target_textbox->appendText(std::string("icon"), false, style);
+
+	target_textbox->appendImageSegment(style);
+
 	target_textbox->appendText(LLViewerParcelMgr::getInstance()->getSelectionRegion()->getSimAccessString(), false);
 	target_textbox->appendText(text_after_rating, false);
 }
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index e74bfae026e536858fbb236b7bc357a4b34ce352..df176a1f6d363eba6d8dfae6c5ae72f90db7f792 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -284,4 +284,15 @@ void LLFloaterMap::handleStopTracking (const LLSD& userdata)
 		LLTracker::stopTracking ((void*)LLTracker::isTracking(NULL));
 	}
 }
-
+void	LLFloaterMap::setMinimized(BOOL b)
+{
+	LLFloater::setMinimized(b);
+	if(b)
+	{
+		setTitle(getString("mini_map_caption"));
+	}
+	else
+	{
+		setTitle("");
+	}
+}
diff --git a/indra/newview/llfloatermap.h b/indra/newview/llfloatermap.h
index 3c063adfb8662f642cf9908ac1c3a7c990f3d3de..f7e46bf868abf90c8e94b09e69a851f5db58a8eb 100644
--- a/indra/newview/llfloatermap.h
+++ b/indra/newview/llfloatermap.h
@@ -55,6 +55,8 @@ class LLFloaterMap : public LLFloater
 	/*virtual*/ void	draw();
 	/*virtual*/ void	onFocusLost();
 	/*virtual*/ void	onFocusReceived();
+
+	/*virtual*/ void	setMinimized(BOOL b);
 	
 private:
 	void handleZoom(const LLSD& userdata);
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index 97ff771658daa8d4d62f819e4cec723f8ca2dd84..be021df36359ecae2d7335bb4ba9f36f2b116255 100644
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
@@ -128,7 +128,16 @@ void LLInspectRemoteObject::onOpen(const LLSD& data)
 	update();
 
 	// Position the inspector relative to the mouse cursor
-	LLUI::positionViewNearMouse(this);
+	// Similar to how tooltips are positioned
+	// See LLToolTipMgr::createToolTip
+	if (data.has("pos"))
+	{
+		LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());
+	}
+	else
+	{
+		LLUI::positionViewNearMouse(this);
+	}
 }
 
 void LLInspectRemoteObject::onClickMap()
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 71604291e192000f5419e481e148e29d49d12cd2..06f490e8e3a4306bb4890c9353b4e1e1c26a8bdf 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -168,7 +168,9 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
 	char hashed_mac_string[MD5HEX_STR_SIZE];		/* Flawfinder: ignore */
 	LLMD5 hashed_mac;
 	unsigned char MACAddress[MAC_ADDRESS_BYTES];
-	LLUUID::getNodeID(MACAddress);	
+	if(LLUUID::getNodeID(MACAddress) == 0) {
+		llerrs << "Failed to get node id; cannot uniquely identify this machine." << llendl;
+	}
 	hashed_mac.update( MACAddress, MAC_ADDRESS_BYTES );
 	hashed_mac.finalize();
 	hashed_mac.hex_digest(hashed_mac_string);
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index c5043e1c3d7f174e148bcfcaca33fb81f868106b..6542afc366fe4a112813db622625aab8cce4938a 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -288,6 +288,9 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
 		// Setting tab focus callback to monitor currently selected outfit.
 		tab->setFocusReceivedCallback(boost::bind(&LLOutfitsList::changeOutfitSelection, this, list, cat_id));
 
+		// Setting callback to reset items selection inside outfit on accordion collapsing and expanding (EXT-7875)
+		tab->setDropDownStateChangedCallback(boost::bind(&LLOutfitsList::resetItemSelection, this, list, cat_id));
+
 		// Setting list commit callback to monitor currently selected wearable item.
 		list->setCommitCallback(boost::bind(&LLOutfitsList::onSelectionChange, this, _1));
 
@@ -486,6 +489,13 @@ void LLOutfitsList::updateOutfitTab(const LLUUID& category_id)
 	}
 }
 
+void LLOutfitsList::resetItemSelection(LLWearableItemsList* list, const LLUUID& category_id)
+{
+	list->resetSelection();
+	mItemSelected = false;
+	setSelectedOutfitUUID(category_id);
+}
+
 void LLOutfitsList::changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id)
 {
 	MASK mask = gKeyboard->currentMask(TRUE);
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index df65f7187b49144b99412f7b06a719a103c090d3..a6b9a66836dd2d06dacf468ac5db1f26b6827432 100644
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
@@ -122,6 +122,11 @@ class LLOutfitsList : public LLPanel
 	 */
 	void changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id);
 
+	/**
+	 *Resets items selection inside outfit
+	 */
+	void resetItemSelection(LLWearableItemsList* list, const LLUUID& category_id);
+
 	/**
 	 * Saves newly selected outfit ID.
 	 */
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index 4402b2130f1c1ca59de0006279248e899c848be6..71edd39348d5175c263f8709bc18e1650a1f87d4 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -977,6 +977,7 @@ void LLPanelEditWearable::revertChanges()
 
 	mWearablePtr->revertValues();
 	mNameEditor->setText(mWearablePtr->getName());
+	updatePanelPickerControls(mWearablePtr->getType());
 }
 
 void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show)
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 6b5eb23a9beac6298b6860fcff7877e976184287..aac020087b45f6d9d6f9858e6b855ce546a5c170 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -252,7 +252,8 @@ LLPanelOutfitEdit::LLPanelOutfitEdit()
 	mInitialized(false),
 	mAddWearablesPanel(NULL),
 	mFolderViewFilterCmbBox(NULL),
-	mListViewFilterCmbBox(NULL)
+	mListViewFilterCmbBox(NULL),
+	mPlusBtn(NULL)
 {
 	mSavedFolderState = new LLSaveFolderState();
 	mSavedFolderState->setApply(FALSE);
@@ -343,9 +344,9 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mInventoryItemsPanel = getChild<LLInventoryPanel>("folder_view");
 	mInventoryItemsPanel->setFilterTypes(ALL_ITEMS_MASK);
 	mInventoryItemsPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
-	mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
-	mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
-	
+	mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this));
+	mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this));
+
 	mCOFDragAndDropObserver = new LLCOFDragAndDropObserver(mInventoryItemsPanel->getModel());
 
 	mFolderViewFilterCmbBox = getChild<LLComboBox>("folder_view_filter_combobox");
@@ -371,7 +372,8 @@ BOOL LLPanelOutfitEdit::postBuild()
 
 	childSetAction("show_add_wearables_btn", boost::bind(&LLPanelOutfitEdit::onAddMoreButtonClicked, this));
 
-	childSetAction("plus_btn", boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
+	mPlusBtn = getChild<LLButton>("plus_btn");
+	mPlusBtn->setClickedCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
 	
 	mEditWearableBtn = getChild<LLButton>("edit_wearable_btn");
 	mEditWearableBtn->setEnabled(FALSE);
@@ -382,6 +384,8 @@ BOOL LLPanelOutfitEdit::postBuild()
 
 	mWearablesListViewPanel = getChild<LLPanel>("filtered_wearables_panel");
 	mWearableItemsList = getChild<LLInventoryItemsList>("list_view");
+	mWearableItemsList->setCommitOnSelectionChange(true);
+	mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this));
 
 	mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this));
 	return TRUE;
@@ -559,21 +563,7 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)
 
 void LLPanelOutfitEdit::onPlusBtnClicked(void)
 {
-	LLUUID selected_id;
-	if (mInventoryItemsPanel->getVisible())
-	{
-		LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
-		if (!curr_item) return;
-
-		LLFolderViewEventListener* listenerp  = curr_item->getListener();
-		if (!listenerp) return;
-
-		selected_id = listenerp->getUUID();
-	}
-	else if (mWearablesListViewPanel->getVisible())
-	{
-		selected_id = mWearableItemsList->getSelectedUUID();
-	}
+	LLUUID selected_id = getSelectedItemUUID();
 
 	if (selected_id.isNull()) return;
 
@@ -658,22 +648,28 @@ void LLPanelOutfitEdit::onEditWearableClicked(void)
 	}
 }
 
-void LLPanelOutfitEdit::onInventorySelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
+void LLPanelOutfitEdit::onInventorySelectionChange()
 {
-	LLFolderViewItem* current_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
-	if (!current_item)
+	LLUUID item_uuid = getSelectedItemUUID();
+	if (item_uuid.isNull())
 	{
 		return;
 	}
 
-	LLViewerInventoryItem* item = current_item->getInventoryItem();
-	if (!item) return;
+	LLViewerInventoryItem* item(gInventory.getItem(item_uuid));
+	if (!item)
+	{
+		return;
+	}
 
 	switch (item->getType())
 	{
-	case LLAssetType::AT_CLOTHING:
 	case LLAssetType::AT_BODYPART:
+		mPlusBtn->setToolTip(getString("replace_body_part"));
+		break;
+	case LLAssetType::AT_CLOTHING:
 	case LLAssetType::AT_OBJECT:
+		mPlusBtn->setToolTip(LLStringUtil::null);
 	default:
 		break;
 	}
@@ -934,4 +930,26 @@ void LLPanelOutfitEdit::onOutfitChanging(bool started)
 	indicator->setVisible(started);
 }
 
+LLUUID LLPanelOutfitEdit::getSelectedItemUUID()
+{
+	LLUUID selected_id;
+	if (mInventoryItemsPanel->getVisible())
+	{
+		LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
+		if (!curr_item) return selected_id;
+
+		LLFolderViewEventListener* listenerp  = curr_item->getListener();
+		if (!listenerp) return selected_id;
+
+		selected_id = listenerp->getUUID();
+	}
+	else if (mWearablesListViewPanel->getVisible())
+	{
+		selected_id = mWearableItemsList->getSelectedUUID();
+	}
+
+	return selected_id;
+}
+
+
 // EOF
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index f449fbca27208cc4379cfd67e02aa2e1fe9e2901..aa5d00903ae2abd03b3067b8a081ea820b8ccb18 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -145,7 +145,7 @@ class LLPanelOutfitEdit : public LLPanel
 	void onFolderViewFilterCommitted(LLUICtrl* ctrl);
 	void onListViewFilterCommitted(LLUICtrl* ctrl);
 	void onSearchEdit(const std::string& string);
-	void onInventorySelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
+	void onInventorySelectionChange();
 	void onPlusBtnClicked(void);
 
 	void applyFolderViewFilter(EFolderViewItemType type);
@@ -192,7 +192,7 @@ class LLPanelOutfitEdit : public LLPanel
 	void onAddMoreButtonClicked();
 	void showFilteredWearablesListView(LLWearableType::EType type);
 	void onOutfitChanging(bool started);
-
+	LLUUID getSelectedItemUUID();
 
 	LLTextBox*			mCurrentOutfitName;
 	LLTextBox*			mStatus;
@@ -203,6 +203,7 @@ class LLPanelOutfitEdit : public LLPanel
 	LLButton*			mEditWearableBtn;
 	LLButton*			mFolderViewBtn;
 	LLButton*			mListViewBtn;
+	LLButton*			mPlusBtn;
 	LLPanel*			mAddWearablesPanel;
 	
 	LLComboBox*			mFolderViewFilterCmbBox;
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 714d9cd4c5f6c0fbb1e25e10473ede4f98b4aa1a..d382c77430f7ede7d6af3ab586e8db59fa0fe39e 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -86,6 +86,7 @@ class LLOutfitListGearMenu
 
 		registrar.add("Gear.Wear", boost::bind(&LLOutfitListGearMenu::onWear, this));
 		registrar.add("Gear.TakeOff", boost::bind(&LLOutfitListGearMenu::onTakeOff, this));
+		registrar.add("Gear.Rename", boost::bind(&LLOutfitListGearMenu::onRename, this));
 		registrar.add("Gear.Delete", boost::bind(&LLOutfitListGearMenu::onDelete, this));
 		registrar.add("Gear.Create", boost::bind(&LLOutfitListGearMenu::onCreate, this, _2));
 
@@ -158,6 +159,15 @@ class LLOutfitListGearMenu
 		}
 	}
 
+	void onRename()
+	{
+		const LLUUID& selected_outfit_id = getSelectedOutfitID();
+		if (selected_outfit_id.notNull())
+		{
+			LLAppearanceMgr::instance().renameOutfit(selected_outfit_id);
+		}
+	}
+
 	void onDelete()
 	{
 		const LLUUID& selected_outfit_id = getSelectedOutfitID();
@@ -187,7 +197,11 @@ class LLOutfitListGearMenu
 			return false;
 		}
 
-		if ("delete" == param)
+		if ("rename" == param)
+		{
+			return get_is_category_renameable(&gInventory, selected_outfit_id);
+		}
+		else if ("delete" == param)
 		{
 			return LLAppearanceMgr::instance().getCanRemoveOutfit(selected_outfit_id);
 		}
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index a0e28f7a42ba0a0e41830612f135f19604f30733..efd96624ab0026d0cbf298824050fd6fadbca19e 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -54,6 +54,9 @@
      name="ToolTipMsg">
         [AGENT][REGION](Double-click to open Map)
     </floater.string>
+    <floater.string name="mini_map_caption">
+	MINIMAP
+    </floater.string>
     <net_map
      bg_color="NetMapBackgroundColor"
      follows="top|left|bottom|right"
diff --git a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
index 16b33eff892f6b941328150248f49eb27ea3b6c5..8e7ef7f0b55f964384f301b54ee94bfe8a5b53ea 100644
--- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
@@ -175,6 +175,19 @@
             <!-- copied from menu_inventory_add.xml -->
 
     <menu_item_separator name="sepatator2" />
+    <menu_item_call
+     label="Rename Outfit"
+     layout="topleft"
+     name="rename">
+        <on_click
+         function="Gear.Rename" />
+        <on_enable
+         function="Gear.OnEnable"
+         parameter="rename" />
+        <on_visible
+         function="Gear.OnVisible"
+         parameter="rename" />
+    </menu_item_call>
     <menu_item_call
      label="Delete Outfit"
      layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
index 00c53250390627a27af572c3d9502b5c7bd059f1..1ab9f722d09714e9333098335dfa077c272192cb 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -1,428 +1,399 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <panel
  background_visible="true"
-	bevel_style="in"
+ bevel_style="in"
  follows="all"
  height="570"
+ help_topic="edit_wearable"
  label="Wearable"
  layout="topleft"
-left="0"
- help_topic="edit_wearable"
+ left="0"
  name="panel_edit_wearable"
-	top="0"
+ top="0"
  width="333">
-	<string
-		name="edit_shape_title">
-		Editing Shape
-	</string>
-	<string
-		name="edit_skin_title">
-		Editing Skin
-	</string>
-	<string
-		name="edit_hair_title">
-		Editing Hair
-	</string>
-	<string
-		name="edit_eyes_title">
-		Editing Eyes
-	</string>
-	<string
-		name="edit_shirt_title">
-		Editing Shirt
-	</string>
-	<string
-		name="edit_pants_title">
-		Editing Pants
-	</string>
-	<string
-		name="edit_shoes_title">
-		Editing Shoes
-	</string>
-	<string
-		name="edit_socks_title">
-		Editing Socks
-	</string>
-	<string
-		name="edit_jacket_title">
-		Editing Jacket
-	</string>
-	<string
-		name="edit_skirt_title">
-		Editing Skirt
-	</string>
-	<string
-		name="edit_gloves_title">
-		Editing Gloves
-	</string>
-	<string
-		name="edit_undershirt_title">
-		Editing Undershirt
-	</string>
-	<string
-		name="edit_underpants_title">
-		Editing Underpants
-	</string>
-	<string
-		name="edit_alpha_title">
-		Editing Alpha Mask
-	</string>
-	<string
-		name="edit_tattoo_title">
-		Editing Tattoo
-	</string>
-	<string
-		name="shape_desc_text">
-		Shape:
-	</string>
-	<string
-		name="skin_desc_text">
-		Skin:
-	</string>
-	<string
-		name="hair_desc_text">
-		Hair:
-	</string>
-	<string
-		name="eyes_desc_text">
-		Eyes:
-	</string>
-	<string
-		name="shirt_desc_text">
-		Shirt:
-	</string>
-	<string
-		name="pants_desc_text">
-		Pants:
-	</string>
-	<string
-		name="shoes_desc_text">
-		Shoes:
-	</string>
-	<string
-		name="socks_desc_text">
-		Socks:
-	</string>
-	<string
-		name="jacket_desc_text">
-		Jacket:
-	</string>
-	<string
-		name="skirt_desc_text">
-		Skirt:
-	</string>
-	<string
-		name="gloves_desc_text">
-		Gloves:
-	</string>
-	<string
-		name="undershirt_desc_text">
-		Undershirt:
-	</string>
-	<string
-		name="underpants_desc_text">
-		Underpants:
-	</string>
-	<string
-		name="alpha_desc_text">
-		Alpha Mask:
-	</string>
-	<string
-		name="tattoo_desc_text">
-		Tattoo:
-	</string>
+    <string
+     name="edit_shape_title"
+     value="Editing Shape" />
+    <string
+     name="edit_skin_title"
+     value="Editing Skin" />
+    <string
+     name="edit_hair_title"
+     value="Editing Hair" />
+    <string
+     name="edit_eyes_title"
+     value="Editing Eyes" />
+    <string
+     name="edit_shirt_title"
+     value="Editing Shirt" />
+    <string
+     name="edit_pants_title"
+     value="Editing Pants" />
+    <string
+     name="edit_shoes_title"
+     value="Editing Shoes" />
+    <string
+     name="edit_socks_title"
+     value="Editing Socks" />
+    <string
+     name="edit_jacket_title"
+     value="Editing Jacket" />
+    <string
+     name="edit_skirt_title"
+     value="Editing Skirt" />
+    <string
+     name="edit_gloves_title"
+     value="Editing Gloves" />
+    <string
+     name="edit_undershirt_title"
+     value="Editing Undershirt" />
+    <string
+     name="edit_underpants_title"
+     value="Editing Underpants" />
+    <string
+     name="edit_alpha_title"
+     value="Editing Alpha Mask" />
+    <string
+     name="edit_tattoo_title"
+     value="Editing Tattoo" />
+    <string
+     name="shape_desc_text"
+     value="Shape:" />
+    <string
+     name="skin_desc_text"
+     value="Skin:" />
+    <string
+     name="hair_desc_text"
+     value="Hair:" />
+    <string
+     name="eyes_desc_text"
+     value="Eyes:" />
+    <string
+     name="shirt_desc_text"
+     value="Shirt:" />
+    <string
+     name="pants_desc_text"
+     value="Pants:" />
+    <string
+     name="shoes_desc_text"
+     value="Shoes:" />
+    <string
+     name="socks_desc_text"
+     value="Socks:" />
+    <string
+     name="jacket_desc_text"
+     value="Jacket:" />
+    <string
+     name="skirt_desc_text"
+     value="Skirt:" />
+    <string
+     name="gloves_desc_text"
+     value="Gloves:" />
+    <string
+     name="undershirt_desc_text"
+     value="Undershirt:" />
+    <string
+     name="underpants_desc_text"
+     value="Underpants:" />
+    <string
+     name="alpha_desc_text"
+     value="Alpha Mask:" />
+    <string
+     name="tattoo_desc_text"
+     value="Tattoo:" />
     <button
      follows="top|left"
      height="24"
-     width="30"
      image_hover_unselected="BackButton_Over"
      image_pressed="BackButton_Press"
      image_unselected="BackButton_Off"
      layout="topleft"
-     name="back_btn"
      left="11"
-     top="3" />
-	<text
-	 follows="top|left"
-	 font="SansSerifHugeBold"
-	 height="22"
-	 layout="topleft"
-	 left_pad="8"
-	 name="edit_wearable_title"
-	 text_color="white"
-   top="3" 
-	 value="Editing Shape"
-	 width="270" />
-     <panel
-         border="false"
-         bg_alpha_color="DkGray2"
-         bg_opaque_color="DkGray2"
-         background_visible="true"
-         background_opaque="true"
+     name="back_btn"
+     top="3"
+     width="30" />
+    <text
+     follows="top|left"
+     font="SansSerifHugeBold"
+     height="22"
+     layout="topleft"
+     left_pad="8"
+     name="edit_wearable_title"
+     text_color="white"
+     top="3"
+     value="Editing Shape"
+     width="270" />
+    <panel
+     background_opaque="true"
+     background_visible="true"
+     bg_alpha_color="DkGray2"
+     bg_opaque_color="DkGray2"
+     border="false"
+     follows="top|left|right"
+     height="60"
+     label="Shirt"
+     layout="topleft"
+     left="10"
+     name="wearable_type_panel"
+     top_pad="10"
+     width="313">
+        <text
          follows="top|left|right"
-         height="60"
-         label="Shirt"
+         font="SansSerifSmallBold"
+         height="16"
+         layout="topleft"
+         left="10"
+         name="description_text"
+         text_color="white"
+         top="10"
+         value="Shape:"
+         width="150" />
+        <radio_group
+         control_name="AvatarSex"
+         follows="left|top|right"
+         height="20"
          layout="topleft"
-		 left="10"
-         name="wearable_type_panel"
-		 top_pad="10"
-         width="313">
-		 <text
-		 follows="top|left|right"
-		 font="SansSerifSmallBold"
-		 height="16"
-		 layout="topleft"
-		 left="10"
-		 name="description_text"
-		 text_color="white"
-		 top="10"
-		 value="Shape:"
-		 width="150" />
-		 <radio_group
-			 control_name="AvatarSex"
-			 follows="left|top|right"
-			 left="210"
-			 height="20"
-			 layout="topleft"
-			 name="sex_radio"
-			 top="5"
-			 width="110">
-			 <radio_item
-				 follows="all"
-				 height="16"
-				 label=""
-				 layout="topleft"
-				 left="0"
-				 name="sex_male"
-				 tool_tip="Male"
-				 value="1"
-				 width="40" />
-			 <radio_item
-				 follows="all"
-				 height="16"
-				 label=""
-				 layout="topleft"
-				 left_pad="10"
-				 name="sex_female"
-				 tool_tip="Female"
-				 value="0"
-				 width="40" />
-		 </radio_group>
-		 <!--  graphical labels for the radio buttons above -->
-		 <icon
-			 height="16"
-			 image_name="icons/Male.png"
-			 left="230"
-			 name="male_icon"
-			 tool_tip="Male"
-			 top="7"
-			 width="16" />
-		 <icon
-			 height="16"
-			 image_name="icons/Female.png"
-			 name="female_icon"
-			 left="280"
-			 tool_tip="Female"
-			 top="7"
-			 width="16" />
-            <line_editor
+         left="210"
+         name="sex_radio"
+         top="5"
+         width="110">
+            <radio_item
              follows="all"
-             height="23"
+             height="16"
+             label=""
              layout="topleft"
-             left="10"
-             max_length="63"
-             name="description"
-             prevalidate_callback="ascii"
-             text_color="black"
-             top_pad="3"
-             width="290" />
-	 </panel>
-	 <panel
-		 follows="all"
-		 height="433"
-		 layout="topleft"
-		 left="0"
-		 name="edit_subpanel_container"
-		 top_pad="2"
-		 width="333">
-		 <!-- the shape editing panel is taller than the others
+             left="0"
+             name="sex_male"
+             tool_tip="Male"
+             value="1"
+             width="40" />
+            <radio_item
+             follows="all"
+             height="16"
+             label=""
+             layout="topleft"
+             left_pad="10"
+             name="sex_female"
+             tool_tip="Female"
+             value="0"
+             width="40"/>
+        </radio_group>
+        <!--  graphical labels for the radio buttons above -->
+        <icon
+         height="16"
+         image_name="icons/Male.png"
+         layout="topleft"
+         left="230"
+         name="male_icon"
+         tool_tip="Male"
+         top="7"
+         width="16" />
+        <icon
+         height="16"
+         image_name="icons/Female.png"
+         layout="topleft"
+         left="280"
+         name="female_icon"
+         tool_tip="Female"
+         top="7"
+         width="16" />
+        <line_editor
+         follows="all"
+         height="23"
+         layout="topleft"
+         left="10"
+         max_length="63"
+         name="description"
+         prevalidate_callback="ascii"
+         text_color="black"
+         top_pad="3"
+         width="290" />
+    </panel>
+    <panel
+     follows="all"
+     height="433"
+     layout="topleft"
+     left="0"
+     name="edit_subpanel_container"
+     top_pad="2"
+     width="333">
+    <!-- the shape editing panel is taller than the others
 		      because it also displays avatar height -->
-		 <panel
-			 filename="panel_edit_shape.xml"
-			 follows="all"
-			 height="433"
-			 layout="topleft"
-			 left="0"
-			 name="edit_shape_panel"
-			 top="0"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_skin.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_skin_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_hair.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_hair_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_eyes.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_eyes_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_shirt.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_shirt_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_pants.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_pants_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_shoes.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_shoes_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_socks.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_socks_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_jacket.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_jacket_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_skirt.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_skirt_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_gloves.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_gloves_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_undershirt.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_undershirt_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_underpants.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_underpants_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_alpha.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_alpha_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-		 <panel
-			 filename="panel_edit_tattoo.xml"
-			 follows="all"
-			 height="425"
-			 layout="topleft"
-			 left="0"
-			 name="edit_tattoo_panel"
-			 top="8"
-			 visible="false"
-			 width="333" />
-	 </panel>
-
-	 <panel
-		 follows="bottom|left|right"
-		 height="23"
-		 layout="topleft"
-		 left="2"
-		 name="button_panel"
-		 top_pad="6"
-		 width="333" >
-		 <button
-			 follows="bottomleft"
-			 layout="topleft"
-			 height="23"
-			 label="Save As"
-			 left="8"
-			 name="save_as_button"
-			 top="0"
-			 width="153" />
-		 <button
-			 follows="bottomleft"
-			 layout="topleft"
-			 height="23"
-			 label="Revert"
-			 left_pad="7"
-			 name="revert_button"
-			 width="152" />
-	 </panel>
+        <panel
+         filename="panel_edit_shape.xml"
+         follows="all"
+         height="433"
+         layout="topleft"
+         left="0"
+         name="edit_shape_panel"
+         top="0"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_skin.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_skin_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_hair.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_hair_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_eyes.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_eyes_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_shirt.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_shirt_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_pants.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_pants_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_shoes.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_shoes_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_socks.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_socks_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_jacket.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_jacket_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_skirt.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_skirt_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_gloves.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_gloves_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_undershirt.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_undershirt_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_underpants.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_underpants_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_alpha.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_alpha_panel"
+         top="8"
+         visible="false"
+         width="333" />
+        <panel
+         filename="panel_edit_tattoo.xml"
+         follows="all"
+         height="425"
+         layout="topleft"
+         left="0"
+         name="edit_tattoo_panel"
+         top="8"
+         visible="false"
+         width="333" />
+    </panel>
+    <panel
+     follows="bottom|left|right"
+     height="23"
+     layout="topleft"
+     left="2"
+     name="button_panel"
+     top_pad="6"
+     width="333">
+        <button
+         follows="bottomleft"
+         height="23"
+         label="Save As"
+         layout="topleft"
+         left="8"
+         name="save_as_button"
+         top="0"
+         width="153" />
+        <button
+         follows="bottomleft"
+         height="23"
+         label="Revert"
+         layout="topleft"
+         left_pad="7"
+         name="revert_button"
+         width="152" />
+    </panel>
 </panel>
diff --git a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
index 819ba7f878748233c31dc58304305ea162f518da..d6549adfef59afcc4a91c1f5b8fa7f0193b6877a 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -54,6 +54,9 @@
     <string name="Filter.Clothing" value="Clothing"/>
     <string name="Filter.Bodyparts" value="Body parts"/>
 
+    <string
+     name="replace_body_part"
+     value="Click to replace your existing shape"/>
 
     <button
      follows="top|left"
diff --git a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
index 78d64620a55fa3cbb9ad52573cb124123a4dd7a5..a8cd380f2045a1c488fd47728b2d7144fc73d29e 100644
--- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
@@ -12,7 +12,7 @@
      layout="topleft"
      left="12"
      name="min param text"
-     text_color="EmphasisColor"
+     text_color="White"
      font_shadow="hard"
      top="120"
      width="120" />
@@ -22,7 +22,7 @@
      layout="topleft"
      left="155"
      name="max param text"
-     text_color="EmphasisColor" 
+     text_color="White" 
      font_shadow="hard"
      top_delta="0"
      width="120" />