diff --git a/.hgtags b/.hgtags
index 6eea987748e8343e245134653ea046c7fd8958ef..7e0bb9ffd24f16c1116e8d859b503dad1f107b3c 100755
--- a/.hgtags
+++ b/.hgtags
@@ -379,3 +379,7 @@ c23d734065ed593b2413385aecd8366d8e0ee96b DRTVWR-257
 452ce96d4046dc05a3ecaecc203e2cc8ddd72e76 DRTVWR-259
 5cba5f39d0a81d659f24ebc4b5efd025a39e3db1 3.4.3-release
 9aa1aa9f1fe13c194695a0b8f0af298296241dc2 DRTVWR-260
+daca610d840625b5bebb966a57cb49581852c417 DRTVWR-265
+9afbdc4e24cc04feacfb2b7a10b78a64f780901a DRTVWR-266
+73280db02501f5ad041fc18b1eba68e73a81996c DRTVWR-267
+870e2d79e0063fda87187f17bbc2747766733194 3.4.3-beta3
diff --git a/doc/contributions.txt b/doc/contributions.txt
index f18985adcda7159d4cb59a1d4176e703cdc6120e..f53d9f5cfd74cd29e1706b43d2ec3c736b714bfd 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -321,6 +321,7 @@ Dale Glass
 	VWR-1358
 	VWR-2041
 Darien Caldwell
+	SH-3055
 Dartagan Shepherd
 Debs Regent
 Decro Schmooz
@@ -890,6 +891,8 @@ Nicholaz Beresford
 	VWR-2682
 	VWR-2684
 Nick Rhodes
+NickyD
+	MAINT-873
 Nicky Dasmijn
 	VWR-29228
 Nicky Perian
@@ -1059,9 +1062,12 @@ Shawn Kaufmat
 	SNOW-240
 Sheet Spotter
 Shnurui Troughton
+Shyotl Kuhr
+	MAINT-1138
 Siana Gearz
 	STORM-960
 	STORM-1088
+	MAINT-1138
 sicarius Thorne
 Sicarius Toxx
 SignpostMarv Martin
@@ -1243,6 +1249,7 @@ Westley Streeter
 Whimsy Winx
 Whirly Fizzle
 	STORM-1895
+	MAINT-873
 Whoops Babii
 	VWR-631
 	VWR-1640
diff --git a/indra/llui/llscrolllistctrl.cpp b/indra/llui/llscrolllistctrl.cpp
index 3e0653e9a483decf905f64d87f5c8ef0ddfbdc9e..d332aa933ec39fda710a7feff999761d70090146 100644
--- a/indra/llui/llscrolllistctrl.cpp
+++ b/indra/llui/llscrolllistctrl.cpp
@@ -580,6 +580,15 @@ BOOL LLScrollListCtrl::addItem( LLScrollListItem* item, EAddPosition pos, BOOL r
 			addColumn(col_params);
 		}
 
+		S32 num_cols = item->getNumColumns();
+		S32 i = 0;
+		for (LLScrollListCell* cell = item->getColumn(i); i < num_cols; cell = item->getColumn(++i))
+		{
+			if (i >= (S32)mColumnsIndexed.size()) break;
+
+			cell->setWidth(mColumnsIndexed[i]->getWidth());
+		}
+
 		updateLineHeightInsert(item);
 
 		updateLayout();
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index e877e1505354592d39f64a74f1b5a348c1a67147..4030324ecbd414526db0f37d2ad3175116110488 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -97,6 +97,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	0
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
@@ -126,13 +129,16 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// Mid Graphics Settings
+// Medium Low Graphics Settings
 //
-list Mid
+list LowMid
 RenderAnisotropic			1	0
 RenderAvatarCloth			1	0
 RenderAvatarLODFactor		1	0.5
@@ -153,11 +159,74 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// High Graphics Settings (purty)
+// Medium Graphics Settings (standard)
+//
+list Mid
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// Medium High Graphics Settings (deferred enabled)
+//
+list MidHigh
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Graphics Settings (deferred + SSAO)
 //
 list High
 RenderAnisotropic			1	1
@@ -180,9 +249,43 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Ultra Graphics Settings (deferred + SSAO + shadows)
+//
+list HighUltra
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	2
 WLSkyDetail					1	48
 RenderFSAASamples			1	2
 
+
 //
 // Ultra graphics (REALLY PURTY!)
 //
@@ -227,57 +330,36 @@ RenderDeferredSSAO			1	0
 //
 list Class0
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 1 Hardware
 //
 list Class1
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
 // Class 2 Hardware
 //
 list Class2
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
-// Class 3 Hardware (deferred enabled)
+// Class 3 Hardware
 //
 list Class3
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	0
 
 //
-// Class 4 Hardware (deferred + SSAO)
+// Class 4 Hardware
 //
 list Class4
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
-// Class 5 Hardware (deferred + SSAO + shadows)
+// Class 5 Hardware
 //
 list Class5
 RenderVBOEnable				1	1
-RenderShadowDetail			1	2
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
-
 
 //
 // VRAM > 512MB
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index 5699bd9c8a7a7968d085539799e7019cb56aa39a..6d5284c6020c8015e5995ca26d5d3abd295bc100 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -94,6 +94,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
@@ -122,13 +125,16 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	0
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// Mid Graphics Settings
+// Medium Low Graphics Settings
 //
-list Mid
+list LowMid
 RenderAnisotropic			1	0
 RenderAvatarCloth			1	0
 RenderAvatarLODFactor		1	0.5
@@ -137,9 +143,9 @@ RenderAvatarVP				1	1
 RenderFarClip				1	96
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	8
-RenderLocalLights			1	1
 RenderMaxPartCount			1	2048
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
@@ -149,11 +155,74 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// High Graphics Settings (purty)
+// Medium Graphics Settings (standard)
+//
+list Mid
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// Medium High Graphics Settings (deferred enabled)
+//
+list MidHigh
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Graphics Settings (deferred + SSAO)
 //
 list High
 RenderAnisotropic			1	1
@@ -164,9 +233,39 @@ RenderAvatarVP				1	1
 RenderFarClip				1	128
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
 RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Ultra Graphics Settings (deferred + SSAO + shadows)
+//
+list HighUltra
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
 RenderMaxPartCount			1	4096
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
@@ -176,6 +275,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	2
 WLSkyDetail					1	48
 RenderFSAASamples			1	2
 
@@ -223,56 +325,37 @@ RenderDeferredSSAO			1	0
 //
 list Class0
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 1 Hardware
 //
 list Class1
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
 // Class 2 Hardware
 //
 list Class2
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
-// Class 3 Hardware (deferred enabled)
+// Class 3 Hardware
 //
 list Class3
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	0
 
 //
-// Class 4 Hardware (deferred + SSAO)
+// Class 4 Hardware 
 //
 list Class4
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
-// Class 5 Hardware (deferred + SSAO + shadows)
+// Class 5 Hardware 
 //
 list Class5
 RenderVBOEnable				1	1
-RenderShadowDetail			1	2
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
+
 //
 // VRAM > 512MB
 //
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 3a91f19c5860febf128f33dd52827e5d542698ff..1c0d45c11badc7023bc45c7ab289ddb3a4409246 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -1,4 +1,4 @@
-version 34
+version 35
 // The version number above should be implemented IF AND ONLY IF some
 // change has been made that is sufficiently important to justify
 // resetting the graphics preferences of all users to the recommended
@@ -96,6 +96,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	0
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
@@ -124,13 +127,16 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// Mid Graphics Settings
+// Medium Low Graphics Settings
 //
-list Mid
+list LowMid
 RenderAnisotropic			1	0
 RenderAvatarCloth			1	0
 RenderAvatarLODFactor		1	0.5
@@ -139,9 +145,9 @@ RenderAvatarVP				1	1
 RenderFarClip				1	96
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	8
-RenderLocalLights			1	1
 RenderMaxPartCount			1	2048
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
@@ -151,11 +157,74 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// High Graphics Settings (purty)
+// Medium Graphics Settings (standard)
+//
+list Mid
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// Medium High Graphics Settings (deferred enabled)
+//
+list MidHigh
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Graphics Settings (deferred + SSAO)
 //
 list High
 RenderAnisotropic			1	1
@@ -166,9 +235,39 @@ RenderAvatarVP				1	1
 RenderFarClip				1	128
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
 RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Ultra Graphics Settings (deferred + SSAO + shadows)
+//
+list HighUltra
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
 RenderMaxPartCount			1	4096
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
@@ -178,9 +277,13 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	2
 WLSkyDetail					1	48
 RenderFSAASamples			1	2
 
+
 //
 // Ultra graphics (REALLY PURTY!)
 //
@@ -216,65 +319,41 @@ RenderFSAASamples			1	2
 //
 list Unknown
 RenderVBOEnable				1	0
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 0 Hardware (just old)
 //
 list Class0
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 1 Hardware
 //
 list Class1
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
 // Class 2 Hardware
 //
 list Class2
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
-// Class 3 Hardware (deferred enabled)
+// Class 3 Hardware
 //
 list Class3
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	0
-
 //
-// Class 4 Hardware (deferred + SSAO)
+// Class 4 Hardware
 //
 list Class4
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
-// Class 5 Hardware (deferred + SSAO + shadows)
+// Class 5 Hardware
 //
 list Class5
 RenderVBOEnable				1	1
-RenderShadowDetail			1	2
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
 // No Pixel Shaders available
diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt
index ad16e2533b293d4ab0fe76f0577304ee07b4de16..68e09d010e5557840220b13329d78e0051dbb5fa 100644
--- a/indra/newview/featuretable_xp.txt
+++ b/indra/newview/featuretable_xp.txt
@@ -96,6 +96,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	0
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
@@ -124,13 +127,16 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// Mid Graphics Settings
+// Medium Low Graphics Settings
 //
-list Mid
+list LowMid
 RenderAnisotropic			1	0
 RenderAvatarCloth			1	0
 RenderAvatarLODFactor		1	0.5
@@ -139,9 +145,9 @@ RenderAvatarVP				1	1
 RenderFarClip				1	96
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	8
-RenderLocalLights			1	1
 RenderMaxPartCount			1	2048
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
@@ -151,11 +157,74 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	0
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
 WLSkyDetail					1	48
 RenderFSAASamples			1	0
 
 //
-// High Graphics Settings (purty)
+// Medium Graphics Settings (standard)
+//
+list Mid
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	0
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// Medium High Graphics Settings (deferred enabled)
+//
+list MidHigh
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
+RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	0
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Graphics Settings (deferred + SSAO)
 //
 list High
 RenderAnisotropic			1	1
@@ -166,9 +235,39 @@ RenderAvatarVP				1	1
 RenderFarClip				1	128
 RenderFlexTimeFactor		1	1.0
 RenderGlowResolutionPow		1	9
+RenderMaxPartCount			1	4096
+RenderObjectBump			1	1
 RenderLocalLights			1	1
+RenderReflectionDetail		1	0
+RenderTerrainDetail			1	1
+RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
+RenderTreeLODFactor			1	0.5
+RenderUseImpostors			1	1
+RenderVolumeLODFactor		1	1.125
+VertexShaderEnable			1	1
+WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	0
+WLSkyDetail					1	48
+RenderFSAASamples			1	2
+
+//
+// High Ultra Graphics Settings (deferred + SSAO + shadows)
+//
+list HighUltra
+RenderAnisotropic			1	1
+RenderAvatarCloth			1	0
+RenderAvatarLODFactor		1	1.0
+RenderAvatarPhysicsLODFactor 1	1.0
+RenderAvatarVP				1	1
+RenderFarClip				1	128
+RenderFlexTimeFactor		1	1.0
+RenderGlowResolutionPow		1	9
 RenderMaxPartCount			1	4096
 RenderObjectBump			1	1
+RenderLocalLights			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
@@ -178,6 +277,9 @@ RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
 VertexShaderEnable			1	1
 WindLightUseAtmosShaders	1	1
+RenderDeferred				1	1
+RenderDeferredSSAO			1	1
+RenderShadowDetail			1	2
 WLSkyDetail					1	48
 RenderFSAASamples			1	2
 
@@ -216,65 +318,42 @@ RenderFSAASamples			1	2
 //
 list Unknown
 RenderVBOEnable				1	0
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 0 Hardware (just old)
 //
 list Class0
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
 
 //
 // Class 1 Hardware
 //
 list Class1
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
 // Class 2 Hardware
 //
 list Class2
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	0
-RenderDeferredSSAO			1	0
-
 
 //
-// Class 3 Hardware (deferred enabled)
+// Class 3 Hardware
 //
 list Class3
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	0
 
 //
 // Class 4 Hardware (deferred + SSAO)
 //
 list Class4
 RenderVBOEnable				1	1
-RenderShadowDetail			1	0
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
-// Class 5 Hardware (deferred + SSAO + shadows)
+// Class 5 Hardware
 //
 list Class5
 RenderVBOEnable				1	1
-RenderShadowDetail			1	2
-RenderDeferred				1	1
-RenderDeferredSSAO			1	1
 
 //
 // VRAM > 512MB
diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp
index 0f1ce2bcd060d3a3d115203bb7aecec1a5fb43ee..d71cf290d6d3fb559076b866160720b8b63ea54a 100644
--- a/indra/newview/llautoreplace.cpp
+++ b/indra/newview/llautoreplace.cpp
@@ -536,6 +536,46 @@ LLAutoReplaceSettings::AddListResult LLAutoReplaceSettings::addList(const LLSD&
 	return result;
 }
 
+LLAutoReplaceSettings::AddListResult LLAutoReplaceSettings::replaceList(const LLSD& newList)
+{
+	AddListResult result = AddListInvalidList;
+	if ( listIsValid( newList ) )
+	{
+		std::string listName = newList[AUTOREPLACE_LIST_NAME].asString();
+		bool listFound = false;
+		S32 search_index;
+		LLSD targetList;
+		// The following is working around the fact that LLSD arrays containing maps also seem to have undefined entries... see LLSD-30
+		for ( search_index = 0, targetList = mLists[0];
+			  !listFound && search_index < mLists.size();
+			  search_index += 1, targetList = mLists[search_index]
+			 )
+		{
+			if ( targetList.isMap() )
+			{
+				if ( listNameMatches( targetList, listName) )
+				{
+					LL_DEBUGS("AutoReplace")<<"list to replace found at "<<search_index<<LL_ENDL;
+					mLists.erase(search_index);
+					mLists.insert(search_index, newList);
+					listFound = true;
+					result = AddListOk;
+				}
+			}
+		}
+		
+		if ( ! listFound )
+		{
+			LL_WARNS("AutoReplace") << "attempt to replace unconfigured list" << LL_ENDL;
+		}
+	}
+	else
+	{
+		LL_WARNS("AutoReplace") << "attempt to add invalid list" << LL_ENDL;
+	}
+	return result;
+}
+
 bool LLAutoReplaceSettings::removeReplacementList(std::string listName)
 {
 	bool found = false;
diff --git a/indra/newview/llautoreplace.h b/indra/newview/llautoreplace.h
index 30b1fd2c659e604a8564bc9af3e12c6f7ad67d55..f720cc4edaf0a164fbc0e709f993f0b7756e6332 100644
--- a/indra/newview/llautoreplace.h
+++ b/indra/newview/llautoreplace.h
@@ -67,6 +67,9 @@ class LLAutoReplaceSettings
 	/// Inserts a new list at the end of the priority order
 	AddListResult addList(const LLSD& newList);
 
+	/// Inserts a list in place of an existing list of the same name
+	AddListResult replaceList(const LLSD& newList);
+
 	/// Removes the named list, @returns false if not found
 	bool removeReplacementList(std::string listName);
 
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 730ad1a364b105484254777ca5c485de35ed930d..0e15f474c9114e0b3fcf2e88c81dc2773cb2ca53 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -1630,6 +1630,7 @@ void LLDrawPoolAvatar::renderRiggedAlpha(LLVOAvatar* avatar)
 						LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
 
 		renderRigged(avatar, RIGGED_ALPHA);
+		gGL.setColorMask(true, false);
 	}
 }
 
@@ -1646,6 +1647,7 @@ void LLDrawPoolAvatar::renderRiggedFullbrightAlpha(LLVOAvatar* avatar)
 						LLRender::BF_ONE_MINUS_SOURCE_ALPHA);
 
 		renderRigged(avatar, RIGGED_FULLBRIGHT_ALPHA);
+		gGL.setColorMask(true, false);
 	}
 }
 
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index 24a27c51464270da62852bf428148bb2b872710d..2b39b771e7174f09170dc1618b8bdf25d8b4ca2a 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -499,6 +499,10 @@ void LLFeatureManager::parseGPUTable(std::string filename)
 	{
 		LL_WARNS("RenderInit") << "GPU '" << rawRenderer << "' not recognized" << LL_ENDL;
 	}
+
+#if LL_DARWIN // never go over "Mid" settings by default on OS X
+	mGPUClass = llmin(mGPUClass, GPU_CLASS_2);
+#endif
 }
 
 // responder saves table into file
@@ -708,34 +712,27 @@ void LLFeatureManager::setGraphicsLevel(S32 level, bool skipFeatures)
 			{ //same as low, but with "Basic Shaders" enabled
 				maskFeatures("Low");
 			}
-			maskFeatures("Class0");
 			break;
 		case 1:
-			maskFeatures("Mid");
-			maskFeatures("Class1");
+			maskFeatures("LowMid");
 			break;
 		case 2:
-			maskFeatures("High");
-			maskFeatures("Class2");
+			maskFeatures("Mid");
 			break;
 		case 3:
-			maskFeatures("High");
-			maskFeatures("Class3");
+			maskFeatures("MidHigh");
 			break;
 		case 4:
 			maskFeatures("High");
-			maskFeatures("Class4");
 			break;
 		case 5:
-			maskFeatures("High");
-			maskFeatures("Class5");
+			maskFeatures("HighUltra");
 			break;
 		case 6:
 			maskFeatures("Ultra");
 			break;
 		default:
 			maskFeatures("Low");
-			maskFeatures("Class0");
 			break;
 	}
 
diff --git a/indra/newview/llfloaterautoreplacesettings.cpp b/indra/newview/llfloaterautoreplacesettings.cpp
index 7d1bcba978a05a0257768b7edd31de57a02b58ba..6e56e929df606d194bd889db9b4b91c1422b4ebd 100644
--- a/indra/newview/llfloaterautoreplacesettings.cpp
+++ b/indra/newview/llfloaterautoreplacesettings.cpp
@@ -478,14 +478,25 @@ bool LLFloaterAutoReplaceSettings::callbackNewListName(const LLSD& notification,
 bool LLFloaterAutoReplaceSettings::callbackListNameConflict(const LLSD& notification, const LLSD& response)
 {
 	LLSD newList = notification["payload"]["list"];
-
+	std::string listName = LLAutoReplaceSettings::getListName(newList);
+	
 	S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
 	switch ( option )
 	{
 	case 0:
 		// Replace current list
-		LL_INFOS("AutoReplace")<<"option 'replace current list' selected"<<LL_ENDL;
-		
+		if ( LLAutoReplaceSettings::AddListOk == mSettings.replaceList(newList) )
+		{
+			LL_INFOS("AutoReplace") << "replaced list '"<<listName<<"'"<<LL_ENDL;
+			mSelectedListName = listName;
+			updateListNames();
+			updateListNamesControls();
+			updateReplacementsList();
+		}
+		else
+		{
+			LL_WARNS("AutoReplace")<<"failed to replace list '"<<listName<<"'"<<LL_ENDL;
+		}
 		break;
 
 	case 1:
@@ -503,14 +514,27 @@ bool LLFloaterAutoReplaceSettings::callbackListNameConflict(const LLSD& notifica
 
 void LLFloaterAutoReplaceSettings::onDeleteList()
 {
-	std::string listName= mListNames->getFirstSelected()->getColumn(0)->getValue().asString();
-	mSettings.removeReplacementList(listName); // remove from the copy of settings
-	mReplacementsList->deleteSelectedItems();   // remove from the scrolling list
-
-	mSelectedListName.clear();
-	updateListNames();
-	updateListNamesControls();
-	updateReplacementsList();
+	std::string listName = mListNames->getSelectedValue().asString();
+	if ( ! listName.empty() )
+	{
+		if ( mSettings.removeReplacementList(listName) )
+		{
+			LL_INFOS("AutoReplace")<<"deleted list '"<<listName<<"'"<<LL_ENDL;
+			mReplacementsList->deleteSelectedItems();   // remove from the scrolling list
+			mSelectedListName.clear();
+			updateListNames();
+			updateListNamesControls();
+			updateReplacementsList();
+		}
+		else
+		{
+			LL_WARNS("AutoReplace")<<"failed to delete list '"<<listName<<"'"<<LL_ENDL;
+		}
+	}
+	else
+	{
+		LL_DEBUGS("AutoReplace")<<"no list selected for delete"<<LL_ENDL;
+	}
 }
 
 void LLFloaterAutoReplaceSettings::onExportList()
diff --git a/indra/newview/llmeshrepository.cpp b/indra/newview/llmeshrepository.cpp
index ba0a590910682168111842e8e9122a0c218b9161..92ac435f084926b63d8dae12567bd784dae83b39 100755
--- a/indra/newview/llmeshrepository.cpp
+++ b/indra/newview/llmeshrepository.cpp
@@ -361,7 +361,20 @@ class LLWholeModelFeeResponder: public LLCurl::Responder
 		mModelData(model_data),
 		mObserverHandle(observer_handle)
 	{
+		if (mThread)
+		{
+			mThread->startRequest();
+		}
+	}
+
+	~LLWholeModelFeeResponder()
+	{
+		if (mThread)
+		{
+			mThread->stopRequest();
+		}
 	}
+
 	virtual void completed(U32 status,
 						   const std::string& reason,
 						   const LLSD& content)
@@ -372,7 +385,6 @@ class LLWholeModelFeeResponder: public LLCurl::Responder
 			cc = llsd_from_file("fake_upload_error.xml");
 		}
 			
-		mThread->mPendingUploads--;
 		dump_llsd_to_file(cc,make_dump_name("whole_model_fee_response_",dump_num));
 
 		LLWholeModelFeeObserver* observer = mObserverHandle.get();
@@ -415,7 +427,20 @@ class LLWholeModelUploadResponder: public LLCurl::Responder
 		mModelData(model_data),
 		mObserverHandle(observer_handle)
 	{
+		if (mThread)
+		{
+			mThread->startRequest();
+		}
+	}
+
+	~LLWholeModelUploadResponder()
+	{
+		if (mThread)
+		{
+			mThread->stopRequest();
+		}
 	}
+
 	virtual void completed(U32 status,
 						   const std::string& reason,
 						   const LLSD& content)
@@ -426,7 +451,6 @@ class LLWholeModelUploadResponder: public LLCurl::Responder
 			cc = llsd_from_file("fake_upload_error.xml");
 		}
 
-		mThread->mPendingUploads--;
 		dump_llsd_to_file(cc,make_dump_name("whole_model_upload_response_",dump_num));
 		
 		LLWholeModelUploadObserver* observer = mObserverHandle.get();
@@ -1622,7 +1646,7 @@ void LLMeshUploadThread::doWholeModelUpload()
 			mCurlRequest->process();
 			//sleep for 10ms to prevent eating a whole core
 			apr_sleep(10000);
-		} while (!LLAppViewer::isQuitting() && mCurlRequest->getQueued() > 0);
+		} while (!LLAppViewer::isQuitting() && mPendingUploads > 0);
 	}
 
 	delete mCurlRequest;
@@ -1644,7 +1668,6 @@ void LLMeshUploadThread::requestWholeModelFee()
 	wholeModelToLLSD(model_data,false);
 	dump_llsd_to_file(model_data,make_dump_name("whole_model_fee_request_",dump_num));
 
-	mPendingUploads++;
 	LLCurlRequest::headers_t headers;
 
 	{
@@ -1661,7 +1684,7 @@ void LLMeshUploadThread::requestWholeModelFee()
 		mCurlRequest->process();
 		//sleep for 10ms to prevent eating a whole core
 		apr_sleep(10000);
-	} while (!LLApp::isQuitting() && mCurlRequest->getQueued() > 0);
+	} while (!LLApp::isQuitting() && mPendingUploads > 0);
 
 	delete mCurlRequest;
 	mCurlRequest = NULL;
diff --git a/indra/newview/llmeshrepository.h b/indra/newview/llmeshrepository.h
index da81bb057bc5acb44e5382e3985eba8e8cb740f8..6e301c26a2ba78e226a8cd98234f3d522d19947a 100644
--- a/indra/newview/llmeshrepository.h
+++ b/indra/newview/llmeshrepository.h
@@ -405,6 +405,9 @@ class LLMeshUploadThread : public LLThread
 					   LLHandle<LLWholeModelFeeObserver> fee_observer= (LLHandle<LLWholeModelFeeObserver>()), LLHandle<LLWholeModelUploadObserver> upload_observer = (LLHandle<LLWholeModelUploadObserver>()));
 	~LLMeshUploadThread();
 
+	void startRequest() { ++mPendingUploads; }
+	void stopRequest() { --mPendingUploads; }
+
 	bool finished() { return mFinished; }
 	virtual void run();
 	void preStart();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 5d1c3350785e80d5818283a00e69dc992aecc7fd..538911e9b879f11378fd3cb13cacbea6f528b6f7 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1483,7 +1483,7 @@ BOOL LLVOVolume::genBBoxes(BOOL force_global)
 
 	updateRadius();
 	mDrawable->movePartition();
-			
+				
 	return res;
 }
 
@@ -3583,7 +3583,6 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector3& start, const LLVector3& e
 		if (LLFloater::isVisible(gFloaterTools) && getAvatar()->isSelf())
 		{
 			updateRiggedVolume();
-			genBBoxes(FALSE);
 			volume = mRiggedVolume;
 			transform = false;
 		}