diff --git a/doc/contributions.txt b/doc/contributions.txt
index d3a5d087d516efbaf9227d911d96d407f17585a9..e1ea531cafd1223a96081effd375db7511e986a3 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -759,6 +759,11 @@ Jonathan Yap
 	STORM-2088
 	STORM-2094
 	STORM-2099
+	STORM-2091
+	STORM-2092
+	STORM-2100
+	STORM-2104
+	STORM-2142
 Kadah Coba
 	STORM-1060
     STORM-1843
diff --git a/indra/llui/llstatbar.cpp b/indra/llui/llstatbar.cpp
index 35f5330a3f28ddbbb0d1a9a488dc823dcd73ce3f..6c8e63442badf14ca6498a37bad9057d2ddaadcd 100644
--- a/indra/llui/llstatbar.cpp
+++ b/indra/llui/llstatbar.cpp
@@ -40,6 +40,7 @@
 #include "lltooltip.h"
 #include "lllocalcliprect.h"
 #include <iostream>
+#include "lltrans.h"
 
 // rate at which to update display of value that is rapidly changing
 const F32 MEAN_VALUE_UPDATE_TIME = 1.f / 4.f; 
@@ -619,19 +620,19 @@ void LLStatBar::drawLabelAndValue( F32 value, std::string &label, LLRect &bar_re
 
 	std::string value_str	= !llisnan(value)
 							? llformat("%10.*f %s", decimal_digits, value, label.c_str())
-							: "n/a";
+							: LLTrans::getString("na");
 
 	// Draw the current value.
 	if (mOrientation == HORIZONTAL)
 	{
 		LLFontGL::getFontMonospace()->renderUTF8(value_str, 0, bar_rect.mRight, getRect().getHeight(), 
-			LLColor4(1.f, 1.f, 1.f, 0.5f),
+			LLColor4(1.f, 1.f, 1.f, 1.f),
 			LLFontGL::RIGHT, LLFontGL::TOP);
 	}
 	else
 	{
 		LLFontGL::getFontMonospace()->renderUTF8(value_str, 0, bar_rect.mRight, getRect().getHeight(), 
-			LLColor4(1.f, 1.f, 1.f, 0.5f),
+			LLColor4(1.f, 1.f, 1.f, 1.f),
 			LLFontGL::RIGHT, LLFontGL::TOP);
 	}
 }
diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp
index eae16b9f03de98a99a5e0c6c753bfd03e7e37f09..c14bb4e7ae4cf2ea1b8840e8512ea8b8e3a4a46b 100644
--- a/indra/newview/llfloaterscriptlimits.cpp
+++ b/indra/newview/llfloaterscriptlimits.cpp
@@ -523,6 +523,8 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
 
 			LLScrollListCell::Params cell_params;
 			cell_params.font = LLFontGL::getFontSansSerif();
+			// Start out right justifying numeric displays
+			cell_params.font_halign = LLFontGL::RIGHT;
 
 			cell_params.column = "size";
 			cell_params.value = size;
@@ -532,6 +534,8 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
 			cell_params.value = urls;
 			item_params.columns.add(cell_params);
 
+			cell_params.font_halign = LLFontGL::LEFT;
+			// The rest of the columns are text to left justify them
 			cell_params.column = "name";
 			cell_params.value = name_buf;
 			item_params.columns.add(cell_params);
@@ -546,7 +550,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
 
 			cell_params.column = "location";
 			cell_params.value = has_locations
-				? llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z)
+				? llformat("<%0.0f, %0.0f, %0.0f>", location_x, location_y, location_z)
 				: "";
 			item_params.columns.add(cell_params);
 
@@ -623,13 +627,20 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content)
 
 	if((mParcelMemoryUsed >= 0) && (mParcelMemoryMax >= 0))
 	{
-		S32 parcel_memory_available = mParcelMemoryMax - mParcelMemoryUsed;
-
 		LLStringUtil::format_map_t args_parcel_memory;
 		args_parcel_memory["[COUNT]"] = llformat ("%d", mParcelMemoryUsed);
-		args_parcel_memory["[MAX]"] = llformat ("%d", mParcelMemoryMax);
-		args_parcel_memory["[AVAILABLE]"] = llformat ("%d", parcel_memory_available);
-		std::string msg_parcel_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_parcel_memory);
+		std::string translate_message = "ScriptLimitsMemoryUsedSimple";
+
+		if (0 < mParcelMemoryMax)
+		{
+			S32 parcel_memory_available = mParcelMemoryMax - mParcelMemoryUsed;
+
+			args_parcel_memory["[MAX]"] = llformat ("%d", mParcelMemoryMax);
+			args_parcel_memory["[AVAILABLE]"] = llformat ("%d", parcel_memory_available);
+			translate_message = "ScriptLimitsMemoryUsed";
+		}
+
+		std::string msg_parcel_memory = LLTrans::getString(translate_message, args_parcel_memory);
 		getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_parcel_memory));
 	}
 
@@ -1061,10 +1072,12 @@ void LLPanelScriptLimitsAttachment::setAttachmentDetails(LLSD content)
 			element["columns"][0]["column"] = "size";
 			element["columns"][0]["value"] = llformat("%d", size);
 			element["columns"][0]["font"] = "SANSSERIF";
+			element["columns"][0]["halign"] = LLFontGL::RIGHT;
 
 			element["columns"][1]["column"] = "urls";
 			element["columns"][1]["value"] = llformat("%d", urls);
 			element["columns"][1]["font"] = "SANSSERIF";
+			element["columns"][1]["halign"] = LLFontGL::RIGHT;
 			
 			element["columns"][2]["column"] = "name";
 			element["columns"][2]["value"] = name;
@@ -1151,14 +1164,20 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content)
 
 	if((mAttachmentMemoryUsed >= 0) && (mAttachmentMemoryMax >= 0))
 	{
-		S32 attachment_memory_available = mAttachmentMemoryMax - mAttachmentMemoryUsed;
-
 		LLStringUtil::format_map_t args_attachment_memory;
 		args_attachment_memory["[COUNT]"] = llformat ("%d", mAttachmentMemoryUsed);
-		args_attachment_memory["[MAX]"] = llformat ("%d", mAttachmentMemoryMax);
-		args_attachment_memory["[AVAILABLE]"] = llformat ("%d", attachment_memory_available);
-		std::string msg_attachment_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_attachment_memory);
-		getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_attachment_memory));
+		std::string translate_message = "ScriptLimitsMemoryUsedSimple";
+
+		if (0 < mAttachmentMemoryMax)
+		{
+			S32 attachment_memory_available = mAttachmentMemoryMax - mAttachmentMemoryUsed;
+
+			args_attachment_memory["[MAX]"] = llformat ("%d", mAttachmentMemoryMax);
+			args_attachment_memory["[AVAILABLE]"] = llformat ("%d", attachment_memory_available);
+			translate_message = "ScriptLimitsMemoryUsed";
+		}
+
+		getChild<LLUICtrl>("memory_used")->setValue(LLTrans::getString(translate_message, args_attachment_memory));
 	}
 
 	if((mAttachmentURLsUsed >= 0) && (mAttachmentURLsMax >= 0))
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 02fa81d5be2113c02febd5459c58251c0d758c4c..1de579d4c3bb1a7c3739e803499beba7328bbe6e 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -3093,6 +3093,10 @@ void LLFolderBridge::performAction(LLInventoryModel* model, std::string action)
 		LLAppearanceMgr::instance().takeOffOutfit( cat->getLinkedUUID() );
 		return;
 	}
+	else if ("copyoutfittoclipboard" == action)
+	{
+		copyOutfitToClipboard();
+	}
 	else if ("purge" == action)
 	{
 		purgeItem(model, mUUID);
@@ -3250,6 +3254,39 @@ void LLFolderBridge::gatherMessage(std::string& message, S32 depth, LLError::ELe
     }
 }
 
+void LLFolderBridge::copyOutfitToClipboard()
+{
+	std::string text;
+
+	LLInventoryModel::cat_array_t* cat_array;
+	LLInventoryModel::item_array_t* item_array;
+	gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+
+	S32 item_count(0);
+	if( item_array )
+	{			
+		item_count = item_array->size();
+	}
+
+	if (item_count)
+	{
+		for (S32 i = 0; i < item_count;)
+		{
+			LLSD uuid =item_array->at(i)->getUUID();
+			LLViewerInventoryItem* item = gInventory.getItem(uuid);
+
+			i++;
+			if (item != NULL)
+			{
+				// Append a newline to all but the last line
+				text += i != item_count ? item->getName() + "\n" : item->getName();
+			}
+		}
+	}
+
+	LLClipboard::instance().copyToClipboard(utf8str_to_wstring(text),0,text.size());
+}
+
 void LLFolderBridge::openItem()
 {
 	LL_DEBUGS() << "LLFolderBridge::openItem()" << LL_ENDL;
@@ -3737,6 +3774,15 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items
 		// This is the lost+found folder.
 		items.push_back(std::string("Empty Lost And Found"));
 
+		LLInventoryModel::cat_array_t* cat_array;
+		LLInventoryModel::item_array_t* item_array;
+		gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+		// Enable Empty menu item only when there is something to act upon.
+		if (0 == cat_array->size() && 0 == item_array->size())
+		{
+			disabled_items.push_back(std::string("Empty Lost And Found"));
+		}
+
 		disabled_items.push_back(std::string("New Folder"));
 		disabled_items.push_back(std::string("New Script"));
 		disabled_items.push_back(std::string("New Note"));
@@ -3781,6 +3827,15 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items
 	{
 		// This is the trash.
 		items.push_back(std::string("Empty Trash"));
+
+		LLInventoryModel::cat_array_t* cat_array;
+		LLInventoryModel::item_array_t* item_array;
+		gInventory.getDirectDescendentsOf(mUUID, cat_array, item_array);
+		// Enable Empty menu item only when there is something to act upon.
+		if (0 == cat_array->size() && 0 == item_array->size())
+		{
+			disabled_items.push_back(std::string("Empty Trash"));
+		}
 	}
 	else if(isItemInTrash())
 	{
@@ -3830,6 +3885,11 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t&   items
 			}
 		}
 
+		if (model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT) == mUUID)
+		{
+			items.push_back(std::string("Copy outfit list to clipboard"));
+		}
+
 		//Added by aura to force inventory pull on right-click to display folder options correctly. 07-17-06
 		mCallingCards = mWearables = FALSE;
 
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index df25e01688a2be73c4d948435c096904d8c8ba21..b7d8c9d034a8f6918496c56f525d26ee78532832 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -344,6 +344,7 @@ class LLFolderBridge : public LLInvFVBridge
 	BOOL checkFolderForContentsOfType(LLInventoryModel* model, LLInventoryCollectFunctor& typeToCheck);
 
 	void modifyOutfit(BOOL append);
+	void copyOutfitToClipboard();
 	void determineFolderType();
 
 	void dropToFavorites(LLInventoryItem* inv_item);
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index c9fc1cc33eeb04d267adf21da348e655205df981..fa946ee5c7ac6c5da50a89fc6cbb93662e7e06d6 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -1192,6 +1192,20 @@ bool LLPanelMainInventory::isSaveTextureEnabled(const LLSD& userdata)
 BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
 {
 	const std::string command_name = userdata.asString();
+	if (command_name == "not_empty")
+	{
+		BOOL status = FALSE;
+		LLFolderViewItem* current_item = getActivePanel()->getRootFolder()->getCurSelectedItem();
+		if (current_item)
+		{
+			const LLUUID& item_id = static_cast<LLFolderViewModelItemInventory*>(current_item->getViewModelItem())->getUUID();
+			LLInventoryModel::cat_array_t* cat_array;
+			LLInventoryModel::item_array_t* item_array;
+			gInventory.getDirectDescendentsOf(item_id, cat_array, item_array);
+			status = (0 == cat_array->size() && 0 == item_array->size());
+		}
+		return status;
+	}
 	if (command_name == "delete")
 	{
 		return getActivePanel()->isSelectionRemovable();
diff --git a/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml b/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
index 71ff961c59fa61b18da75514f1afd8d39680e254..b53698a9f21939e71580096955a59f6d03016e35 100644
--- a/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_scene_load_stats.xml
@@ -7,29 +7,22 @@
          save_rect="true"
          save_visibility="true"
          title="SCENE LOAD STATISTICS"
-         width="260">
-    <button follows="top|left"
-            top="20"
-            bottom="60"
-            left="10"
-            width="100"
-            label="Pause"
-            name="playpause"/>
+         width="400">
     <scroll_container follows="top|left|bottom|right"
                       bottom="400"
                       layout="topleft"
                       left="0"
                       name="statistics_scroll"
                       reserve_scroll_corner="true"
-                      top="60"
-                      width="260">
+                      top="20"
+                      width="395">
       <container_view follows="top|left|bottom|right"
                       height="378"
                       layout="topleft"
                       left="2"
                       name="statistics_view"
                       top="20"
-                      width="245" >
+                      width="380" >
 <!--Basic Section-->
 		  <stat_view name="basic"
                  label="Basic"
diff --git a/indra/newview/skins/default/xui/en/floater_script_limits.xml b/indra/newview/skins/default/xui/en/floater_script_limits.xml
index 6b36cdfcc5e0776cf4a200b1edfe2d8590150fdb..96b2ceec63d5114908b81d4fe33f5dca3a13e73f 100644
--- a/indra/newview/skins/default/xui/en/floater_script_limits.xml
+++ b/indra/newview/skins/default/xui/en/floater_script_limits.xml
@@ -8,7 +8,8 @@
  name="scriptlimits"
  save_rect="true"
  title="SCRIPT INFORMATION"
- width="480">
+ min_width="620"
+ width="620">
     <tab_container
      bottom="555"
      follows="left|right|top|bottom"
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index 90f9591f292f917192967b92f669830ea98f7aa1..be9b93837a45a153d465e87911b6e42045467a6c 100644
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -8,7 +8,7 @@
          save_rect="true"
          save_visibility="true"
          title="STATISTICS"
-         width="260">
+         width="270">
   <scroll_container follows="all"
                     height="380"
                     layout="topleft"
@@ -16,14 +16,14 @@
                     name="statistics_scroll"
                     reserve_scroll_corner="true"
                     top="20"
-                    width="260">
+                    width="265">
     <container_view follows="all"
                     height="378"
                     layout="topleft"
-                    left="2"
+                    left="0"
                     name="statistics_view"
                     top="20"
-                    width="245" >
+                    width="250" >
      <stat_view name="basic"
                  label="Basic"
                  setting="OpenDebugStatBasic">
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 61002bf1b56c2dee33c6873f6f842040abfb4c2d..5b8a9413bf3f5e1defdba1228b08143137d51316 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -457,6 +457,14 @@
          function="Inventory.DoToSelected"
          parameter="removefromoutfit" />
     </menu_item_call>
+    <menu_item_call
+     label="Copy outfit list to clipboard"
+     layout="topleft"
+     name="Copy outfit list to clipboard">
+        <menu_item_call.on_click
+         function="Inventory.DoToSelected"
+         parameter="copyoutfittoclipboard" />
+    </menu_item_call>
     <menu_item_separator
      layout="topleft"
      name="Outfit Separator" />
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 98dcdcd1dc7de8fd44f5e6d48043f65588b9d7cf..f911c2da7bdea55b59762fd7e2ca8b3072115dbe 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -448,7 +448,7 @@
              parameter="mini_map" />
         </menu_item_check>
         <menu_item_check
-        label="Search"
+        label="Search..."
         name="Search"
         shortcut="control|F">
             <menu_item_check.on_check
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
index 629d8567d10d5bfa2810979bb42933b48002eb66..2c2803a503cd7bd20f2a306b0815f96ef248762a 100644
--- a/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_my_avatar.xml
@@ -8,7 +8,7 @@
  left="0"
  name="script_limits_my_avatar_panel"
  top="0"
- width="480">
+ width="620">
 	<text
 	 type="string"
 	 length="1"
@@ -19,7 +19,7 @@
 	 name="script_memory"
 	 top_pad="24"
 	 text_color="White"
-	 width="480">
+	 width="620">
 		Avatar Script Usage
 	</text>
 	<text
@@ -31,7 +31,7 @@
 	 left="30"
 	 name="memory_used"
 	 top_delta="18"
-	 width="480">
+	 width="620">
 
 	</text>
 	<text
@@ -43,7 +43,7 @@
 	 left="30"
 	 name="urls_used"
 	 top_delta="18"
-	 width="480">
+	 width="620">
 
 	</text>
 	<text
@@ -56,7 +56,7 @@
      name="loading_text"
      top="80"
      text_color="EmphasisColor"
-     width="480">
+     width="620">
         Loading...
     </text>
     <scroll_list
@@ -68,7 +68,7 @@
      multi_select="true"
      name="scripts_list"
      top="100"
-     width="460">
+     width="600">
         <scroll_list.columns
          label="Size (kb)"
          name="size"
diff --git a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
index c5e8bf5803dc57358e56a4599ef39908d5a7c8b2..79bb781bc6ff77bb73c3afb5a8cb2bb6e958967f 100644
--- a/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
+++ b/indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml
@@ -8,7 +8,7 @@
  name="script_limits_region_memory_panel"
  top="0"
  left="0"
- width="480">
+ width="620">
 	<text
 	 type="string"
 	 length="1"
@@ -19,7 +19,7 @@
 	 name="script_memory"
 	 top_pad="24"
 	 text_color="White"
-	 width="480">
+	 width="620">
 	   Parcel Script Memory
 	</text>
 	<text
@@ -32,7 +32,7 @@
 	 name="parcels_listed"
 	 top_delta="18"
 	 visible="true"
-	 width="480">
+	 width="620">
 	 
 	</text>
 	<text
@@ -44,7 +44,7 @@
 	 left="30"
 	 name="memory_used"
 	 top_delta="18"
-	 width="480">
+	 width="620">
 	</text>
 	
 	<text
@@ -56,7 +56,7 @@
 	 left="30"
 	 name="urls_used"
 	 top_delta="18"
-	 width="480">
+	 width="620">
 	 
 	</text>
 	<text
@@ -69,7 +69,7 @@
      name="loading_text"
      top_delta="12"
      text_color="EmphasisColor"
-     width="480">
+     width="620">
         Loading...
     </text>
     <scroll_list
@@ -83,7 +83,7 @@
      sort_ascending="true"
      name="scripts_list"
      top_delta="16"
-     width="460">
+     width="600">
         <scroll_list.columns
          label="Size (kb)"
          name="size"
@@ -120,23 +120,23 @@
      left="10"
      width="100" />
     <button
-     follows="bottom|right"
+     follows="bottom|left"
      height="19"
-     label="Highlight"
+     label="Return"
 	 visible="false"
-     layout="bottomright"
-     left="370"
-     name="highlight_btn"
+     layout="bottomleft"
+     name="return_btn"
      top="34"
+     left_delta="390"
      width="100" />
     <button
-     follows="bottom|right"
+     follows="bottom|left"
      height="19"
-     label="Return"
+     label="Highlight"
 	 visible="false"
-     layout="bottomright"
-     name="return_btn"
+     layout="bottomleft"
+     left_delta="105"
+     name="highlight_btn"
      top="34"
-     left_delta="-105"
      width="100" />
 </panel>
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 8d84dd47ab71833344a758b3f24e0d08843bf5f2..88ad8bbf7be008532df2e5fcfd396aca2d6d5ead 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -4200,6 +4200,9 @@ Try enclosing path to the editor with double quotes.
     Loading...
   </string>
 
+  <!-- Statistics -->
+  <string name="na">n/a</string>
+
   <!-- Presets graphic/camera -->
   <string name="preset_combo_label">-Empty list-</string>
   <string name="Default">Default</string>