diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 561456c9d68c8dec47532692fcd6130b80240165..aad2fe32769ce077058e285816389f5cd3777a29 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8340,6 +8340,17 @@
       <key>Value</key>
       <real>1.0</real>
     </map>
+	<key>RenderTransparentWater</key>
+	<map>
+	  <key>Comment</key>
+	  <string>Render water as transparent.  Setting to false renders water as opaque with a simple texture applied.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>1</integer>
+	</map>
     <key>RenderTreeLODFactor</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index d69842d5f100320355b9f9e60c98e5603fd8577b..a95abd7dd185e55e8992b612dfbb20f393d61788 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -42,6 +42,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVBOEnable				1	1
@@ -80,6 +81,7 @@ RenderObjectBump			1	0
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	0
 RenderTerrainLODFactor		1	1
+RenderTransparentWater		1	0
 RenderTreeLODFactor			1	0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
@@ -108,6 +110,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -135,6 +138,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	2
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -162,6 +166,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	2.0
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index efe29005f23895393beffe1f9cf34e8b4fe299bf..a52b32355de22ba0efbafb2451686a9cf8fdf8d4 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -42,6 +42,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVBOEnable				1	1
@@ -79,6 +80,7 @@ RenderObjectBump			1	0
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	0
 RenderTerrainLODFactor		1	1
+RenderTransparentWater		1	0
 RenderTreeLODFactor			1	0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
@@ -107,6 +109,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -134,6 +137,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	2
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -161,6 +165,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	2.0
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index f030c9f8e594015287ff2d7946f1f67559a158fd..6dabef53a846a54d69de2f6f83ed623c531c3e65 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -43,6 +43,7 @@ RenderObjectBump				1	1
 RenderReflectionDetail			1	3
 RenderTerrainDetail				1	1
 RenderTerrainLODFactor			1	2.0
+RenderTransparentWater			1	1
 RenderTreeLODFactor				1	1.0
 RenderUseImpostors				1	1
 RenderVBOEnable					1	1
@@ -80,6 +81,7 @@ RenderObjectBump			1	0
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	0
 RenderTerrainLODFactor		1	1
+RenderTransparentWater		1	0
 RenderTreeLODFactor			1	0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
@@ -107,6 +109,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -133,6 +136,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	2
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -159,6 +163,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	3
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	2.0
diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt
index dae77059710835a1c45477dc308e0d806b794438..a09ba17c6246535e031014482d732addb02f9114 100644
--- a/indra/newview/featuretable_xp.txt
+++ b/indra/newview/featuretable_xp.txt
@@ -42,6 +42,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVBOEnable				1	1
@@ -80,6 +81,7 @@ RenderObjectBump			1	0
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	0
 RenderTerrainLODFactor		1	1
+RenderTransparentWater		1	0
 RenderTreeLODFactor			1	0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	0.5
@@ -108,6 +110,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	0
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	1.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -135,6 +138,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	2
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	0.5
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	1.125
@@ -162,6 +166,7 @@ RenderObjectBump			1	1
 RenderReflectionDetail		1	4
 RenderTerrainDetail			1	1
 RenderTerrainLODFactor		1	2.0
+RenderTransparentWater		1	1
 RenderTreeLODFactor			1	1.0
 RenderUseImpostors			1	1
 RenderVolumeLODFactor		1	2.0
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index 0ee70bcdd14525a810dd9c11461b4d8239a927b1..dc94924da4e2cc358fee04a08d82c861061ae4de 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -48,7 +48,8 @@
 #include "llviewershadermgr.h"
 #include "llwaterparammanager.h"
 
-const LLUUID WATER_TEST("2bfd3884-7e27-69b9-ba3a-3e673f680004");
+const LLUUID TRANSPARENT_WATER_TEXTURE("2bfd3884-7e27-69b9-ba3a-3e673f680004");
+const LLUUID OPAQUE_WATER_TEXTURE("43c32285-d658-1793-c123-bf86315de055");
 
 static float sTime;
 
@@ -71,10 +72,14 @@ LLDrawPoolWater::LLDrawPoolWater() :
 	gGL.getTexUnit(0)->bind(mHBTex[1]);
 	mHBTex[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
 
-	mWaterImagep = LLViewerTextureManager::getFetchedTexture(WATER_TEST);
-	mWaterImagep->setNoDelete() ;
+
+	mWaterImagep = LLViewerTextureManager::getFetchedTexture(TRANSPARENT_WATER_TEXTURE);
+	llassert(mWaterImagep);
+	mWaterImagep->setNoDelete();
+	mOpaqueWaterImagep = LLViewerTextureManager::getFetchedTexture(OPAQUE_WATER_TEXTURE);
+	llassert(mOpaqueWaterImagep);
 	mWaterNormp = LLViewerTextureManager::getFetchedTexture(DEFAULT_WATER_NORMAL);
-	mWaterNormp->setNoDelete() ;
+	mWaterNormp->setNoDelete();
 
 	restoreGL();
 }
@@ -161,6 +166,14 @@ void LLDrawPoolWater::render(S32 pass)
 
 	std::sort(mDrawFace.begin(), mDrawFace.end(), LLFace::CompareDistanceGreater());
 
+	// See if we are rendering water as opaque or not
+	if (!gSavedSettings.getBOOL("RenderTransparentWater"))
+	{
+		// render water for low end hardware
+		renderOpaqueLegacyWater();
+		return;
+	}
+
 	LLGLEnable blend(GL_BLEND);
 
 	if ((mVertexShaderLevel > 0) && !sSkipScreenCopy)
@@ -314,6 +327,87 @@ void LLDrawPoolWater::render(S32 pass)
 	gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
 }
 
+// for low end hardware
+void LLDrawPoolWater::renderOpaqueLegacyWater()
+{
+	LLVOSky *voskyp = gSky.mVOSkyp;
+
+	stop_glerror();
+
+	// Depth sorting and write to depth buffer
+	// since this is opaque, we should see nothing
+	// behind the water.  No blending because
+	// of no transparency.  And no face culling so
+	// that the underside of the water is also opaque.
+	LLGLDepthTest gls_depth(GL_TRUE, GL_TRUE);
+	LLGLDisable no_cull(GL_CULL_FACE);
+	LLGLDisable no_blend(GL_BLEND);
+
+	gPipeline.disableLights();
+
+	mOpaqueWaterImagep->addTextureStats(1024.f*1024.f);
+
+	// Activate the texture binding and bind one
+	// texture since all images will have the same texture
+	gGL.getTexUnit(0)->activate();
+	gGL.getTexUnit(0)->enable(LLTexUnit::TT_TEXTURE);
+	gGL.getTexUnit(0)->bind(mOpaqueWaterImagep);
+
+	// Automatically generate texture coords for water texture
+	glEnable(GL_TEXTURE_GEN_S); //texture unit 0
+	glEnable(GL_TEXTURE_GEN_T); //texture unit 0
+	glTexGenf(GL_S, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+	glTexGenf(GL_T, GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR);
+
+	// Use the fact that we know all water faces are the same size
+	// to save some computation
+
+	// Slowly move texture coordinates over time so the watter appears
+	// to be moving.
+	F32 movement_period_secs = 50.f;
+
+	F32 offset = fmod(gFrameTimeSeconds, movement_period_secs);
+
+	if (movement_period_secs != 0)
+	{
+	 	offset /= movement_period_secs;
+	}
+	else
+	{
+		offset = 0;
+	}
+
+	F32 tp0[4] = { 16.f / 256.f, 0.0f, 0.0f, offset };
+	F32 tp1[4] = { 0.0f, 16.f / 256.f, 0.0f, offset };
+
+	glTexGenfv(GL_S, GL_OBJECT_PLANE, tp0);
+	glTexGenfv(GL_T, GL_OBJECT_PLANE, tp1);
+
+	glColor3f(1.f, 1.f, 1.f);
+
+	for (std::vector<LLFace*>::iterator iter = mDrawFace.begin();
+		 iter != mDrawFace.end(); iter++)
+	{
+		LLFace *face = *iter;
+		if (voskyp->isReflFace(face))
+		{
+			continue;
+		}
+
+		face->renderIndexed();
+	}
+
+	stop_glerror();
+
+	// Reset the settings back to expected values
+	glDisable(GL_TEXTURE_GEN_S); //texture unit 0
+	glDisable(GL_TEXTURE_GEN_T); //texture unit 0
+
+	gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
+	gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
+}
+
+
 void LLDrawPoolWater::renderReflection(LLFace* face)
 {
 	LLVOSky *voskyp = gSky.mVOSkyp;
diff --git a/indra/newview/lldrawpoolwater.h b/indra/newview/lldrawpoolwater.h
index 2648a5276cb6b2ae8d8121a4ed5869ca4daba49b..99b541ca5a384d1de939c9795e96b908f0265abd 100644
--- a/indra/newview/lldrawpoolwater.h
+++ b/indra/newview/lldrawpoolwater.h
@@ -39,6 +39,7 @@ class LLDrawPoolWater: public LLFacePool
 protected:
 	LLPointer<LLViewerTexture> mHBTex[2];
 	LLPointer<LLViewerTexture> mWaterImagep;
+	LLPointer<LLViewerTexture> mOpaqueWaterImagep;
 	LLPointer<LLViewerTexture> mWaterNormp;
 
 public:
@@ -80,6 +81,9 @@ class LLDrawPoolWater: public LLFacePool
 
 	void renderReflection(LLFace* face);
 	void shade();
+
+protected:
+	void renderOpaqueLegacyWater();
 };
 
 void cgErrorCallback();
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index fbec2a7b9e6e36571bd3b21bee612a20db82a5e8..117e49d67faa1a136156ef3c313c8b67996e246c 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -117,10 +117,23 @@ static bool handleSetShaderChanged(const LLSD& newvalue)
 	gBumpImageList.destroyGL();
 	gBumpImageList.restoreGL();
 
+	// Changing shader also changes the terrain detail to high, reflect that change here
+	if (newvalue.asBoolean())
+	{
+		// shaders enabled, set terrain detail to high
+		gSavedSettings.setS32("RenderTerrainDetail", 1);
+	}
+	// else, leave terrain detail as is
 	LLViewerShaderMgr::instance()->setShaders();
 	return true;
 }
 
+bool handleRenderTransparentWaterChanged(const LLSD& newvalue)
+{
+	LLWorld::getInstance()->updateWaterObjects();
+	return true;
+}
+
 static bool handleReleaseGLBufferChanged(const LLSD& newvalue)
 {
 	if (gPipeline.isInit())
@@ -637,6 +650,7 @@ void settings_setup_listeners()
 	gSavedSettings.getControl("ShowMiniLocationPanel")->getSignal()->connect(boost::bind(&toggle_show_mini_location_panel, _2));
 	gSavedSettings.getControl("ShowObjectRenderingCost")->getSignal()->connect(boost::bind(&toggle_show_object_render_cost, _2));
 	gSavedSettings.getControl("ForceShowGrid")->getSignal()->connect(boost::bind(&handleForceShowGrid, _2));
+	gSavedSettings.getControl("RenderTransparentWater")->getSignal()->connect(boost::bind(&handleRenderTransparentWaterChanged, _2));
 }
 
 #if TEST_CACHED_CONTROL
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index 9280eb8fa48ded86450bab537fc1700b7d93c049..71f08ec36d7dfcee856a86d1919fa9c5f81cecb5 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -60,8 +60,10 @@ const U32 WIDTH			= (N_RES * WAVE_STEP); //128.f //64		// width of wave tile, in
 const F32 WAVE_STEP_INV	= (1. / WAVE_STEP);
 
 
-LLVOWater::LLVOWater(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp)
-:	LLStaticViewerObject(id, pcode, regionp),
+LLVOWater::LLVOWater(const LLUUID &id, 
+					 const LLPCode pcode, 
+					 LLViewerRegion *regionp) :
+	LLStaticViewerObject(id, pcode, regionp),
 	mRenderType(LLPipeline::RENDER_TYPE_WATER)
 {
 	// Terrain must draw during selection passes so it can block objects behind it.
@@ -153,11 +155,17 @@ BOOL LLVOWater::updateGeometry(LLDrawable *drawable)
 	LLStrider<U16> indicesp;
 	U16 index_offset;
 
-	S32 size = 16;
 
-	S32 num_quads = size*size;	
-	face->setSize(4*num_quads, 6*num_quads);
+	// A quad is 4 vertices and 6 indices (making 2 triangles)
+	static const unsigned int vertices_per_quad = 4;
+	static const unsigned int indices_per_quad = 6;
 
+	const S32 size = gSavedSettings.getBOOL("RenderTransparentWater") ? 16 : 1;
+
+	const S32 num_quads = size * size;
+	face->setSize(vertices_per_quad * num_quads,
+				  indices_per_quad * num_quads);
+	
 	if (face->mVertexBuffer.isNull())
 	{
 		face->mVertexBuffer = new LLVertexBuffer(LLDrawPoolWater::VERTEX_DATA_MASK, GL_DYNAMIC_DRAW_ARB);
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
index 7d49a671e66d258865730cc6635a8ca2edd07039..3ceee609273bfc914de8b758f8aac0b0a2321d91 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -163,536 +163,546 @@
      top="76"
      width="485">
 		<text
-		type="string"
-		length="1"
-		follows="left|top"
-		height="12"
-		layout="topleft"
-		left_delta="5"
-		name="ShadersText"
-		top="3"
-		width="128">
+		 type="string"
+		 length="1"
+		 follows="left|top"
+		 height="12"
+		 layout="topleft"
+		 left_delta="5"
+		 name="ShadersText"
+		 top="3"
+		 width="128">
 			Shaders:
 		</text>
 		<check_box
-		control_name="RenderObjectBump"
-		height="16"
-		initial_value="true"
-		label="Bump mapping and shiny"
-		layout="topleft"
-		left_delta="0"
-		name="BumpShiny"
-		top_pad="7"
-		width="256" />
+		 control_name="RenderTransparentWater"
+		 height="16"
+		 initial_value="true"
+		 label="Transparent Water"
+		 layout="topleft"
+		 left_delta="0"
+		 name="BumpShiny"
+		 top_pad="7"
+		 width="256" />
 		<check_box
-		control_name="VertexShaderEnable"
-		height="16"
-		initial_value="true"
-		label="Basic shaders"
-		layout="topleft"
-		left_delta="0"
-		name="BasicShaders"
-		tool_tip="Disabling this option may prevent some graphics card drivers from crashing"
-		top_pad="1"
-		width="315">
+		 control_name="RenderObjectBump"
+		 height="16"
+		 initial_value="true"
+		 label="Bump mapping and shiny"
+		 layout="topleft"
+		 left_delta="0"
+		 name="BumpShiny"
+		 top_pad="1"
+		 width="256" />
+		<check_box
+		 control_name="VertexShaderEnable"
+		 height="16"
+		 initial_value="true"
+		 label="Basic shaders"
+		 layout="topleft"
+		 left_delta="0"
+		 name="BasicShaders"
+		 tool_tip="Disabling this option may prevent some graphics card drivers from crashing"
+		 top_pad="1"
+		 width="315">
 			<check_box.commit_callback
-			function="Pref.VertexShaderEnable" />
+		     function="Pref.VertexShaderEnable" />
 		</check_box>
 		<check_box
-		control_name="WindLightUseAtmosShaders"
-		height="16"
-		initial_value="true"
-		label="Atmospheric shaders"
-		layout="topleft"
-		left_delta="0"
-		name="WindLightUseAtmosShaders"
-		top_pad="1"
-		width="256">
+		 control_name="WindLightUseAtmosShaders"
+		 height="16"
+		 initial_value="true"
+		 label="Atmospheric shaders"
+		 layout="topleft"
+		 left_delta="0"
+		 name="WindLightUseAtmosShaders"
+		 top_pad="1"
+		 width="256">
 			<check_box.commit_callback
-			function="Pref.VertexShaderEnable" />
+			 function="Pref.VertexShaderEnable" />
 		</check_box>
 <!-- DISABLED UNTIL WE REALLY WANT TO SUPPORT THIS
-    <check_box
-		control_name="RenderDeferred"
-		height="16"
-		initial_value="true"
-		label="Lighting and Shadows"
-		layout="topleft"
-		left_delta="0"
-		name="UseLightShaders"
-		top_pad="1"
-		width="256">
-      <check_box.commit_callback
-			function="Pref.VertexShaderEnable" />
-    </check_box>
-    <check_box
-		control_name="RenderDeferredSSAO"
-		height="16"
-		initial_value="true"
-		label="Ambient Occlusion"
-		layout="topleft"
-		left_delta="0"
-		name="UseSSAO"
-		top_pad="1"
-		width="256">
-      <check_box.commit_callback
-			function="Pref.VertexShaderEnable" />
-    </check_box>
+    	<check_box
+		 control_name="RenderDeferred"
+		 height="16"
+		 initial_value="true"
+		 label="Lighting and Shadows"
+		 layout="topleft"
+		 left_delta="0"
+		 name="UseLightShaders"
+		 top_pad="1"
+		 width="256">
+         	<check_box.commit_callback
+			 function="Pref.VertexShaderEnable" />
+    	</check_box>
+    	<check_box
+		 control_name="RenderDeferredSSAO"
+		 height="16"
+		 initial_value="true"
+		 label="Ambient Occlusion"
+		 layout="topleft"
+		 left_delta="0"
+		 name="UseSSAO"
+		 top_pad="1"
+		 width="256">
+         	<check_box.commit_callback
+			 function="Pref.VertexShaderEnable" />
+    	</check_box>
 
-     <text
-    type="string"
-    length="1"
-    top_pad="8"
-    follows="top|left"
-    height="23"
-    width="110"
-    word_wrap="true"
-    layout="topleft"
-    left="10"
-    name="shadows_label">
-        Shadows:
-      </text>
-      <combo_box
-      control_name="RenderShadowDetail"
-      height="23"
-      layout="topleft"
-      left="10"
-      top_pad="0" 
-      name="ShadowDetail"
-      width="150">
-        <combo_box.item
-        label="None"
-        name="0"
-        value="0"/>
-        <combo_box.item
-        label="Sun/Moon"
-        name="1"
-        value="1"/>
-        <combo_box.item
-        label="Sun/Moon + Projectors"
-        name="2"
-        value="2"/>
-      </combo_box>
+        <text
+         type="string"
+         length="1"
+         top_pad="8"
+         follows="top|left"
+         height="23"
+         width="110"
+         word_wrap="true"
+         layout="topleft"
+         left="10"
+         name="shadows_label">
+         	Shadows:
+        </text>
+        <combo_box
+         control_name="RenderShadowDetail"
+         height="23"
+         layout="topleft"
+         left="10"
+         top_pad="0" 
+         name="ShadowDetail"
+         width="150">
+           <combo_box.item
+            label="None"
+            name="0"
+            value="0"/>
+           <combo_box.item
+            label="Sun/Moon"
+            name="1"
+            value="1"/>
+           <combo_box.item
+            label="Sun/Moon + Projectors"
+            name="2"
+            value="2"/>
+        </combo_box>
 -->
-      <text
-  type="string"
-  length="1"
-  top_pad="8"
-  follows="top|left"
-  height="23"
-  width="110"
-  word_wrap="true"
-  layout="topleft"
-  left="10"
-  name="reflection_label">
-        Water Reflections:
-      </text>
-      <combo_box
-      control_name="RenderReflectionDetail"
-      height="23"
-      layout="topleft"
-      left_delta="10"
-      top_pad ="0"
-      name="Reflections"
-      width="150">
-        <combo_box.item
-        label="Minimal"
-        name="0"
-        value="0"/>
-        <combo_box.item
-        label="Terrain and trees"
-        name="1"
-        value="1"/>
-        <combo_box.item
-        label="All static objects"
-        name="2"
-        value="2"/>
-        <combo_box.item
-        label="All avatars and objects"
-        name="3"
-        value="3"/>
-        <combo_box.item
-        label="Everything"
-        name="4"
-        value="4"/>
-      </combo_box>
+        <text
+         type="string"
+         length="1"
+         top_pad="8"
+         follows="top|left"
+         height="12"
+         width="110"
+         word_wrap="true"
+         layout="topleft"
+         left="05"
+         name="reflection_label">
+            Water Reflections:
+        </text>
+        <combo_box
+         control_name="RenderReflectionDetail"
+         height="18"
+         layout="topleft"
+         left_delta="10"
+         top_pad ="3"
+         name="Reflections"
+         width="150">
+            <combo_box.item
+             label="Minimal"
+             name="0"
+             value="0"/>
+            <combo_box.item
+             label="Terrain and trees"
+             name="1"
+             value="1"/>
+            <combo_box.item
+             label="All static objects"
+             name="2"
+             value="2"/>
+            <combo_box.item
+             label="All avatars and objects"
+             name="3"
+             value="3"/>
+            <combo_box.item
+             label="Everything"
+             name="4"
+             value="4"/>
+        </combo_box>
     
 		<slider
-		control_name="RenderFarClip"
-		decimal_digits="0"
-		follows="left|top"
-		height="16"
-		increment="8"
-		initial_value="160"
-		label="Draw distance:"
-		label_width="185"
-		layout="topleft"
-		left="200"
-		max_val="512"
-		min_val="64"
-		name="DrawDistance"
-		top="3"
-		width="296" />
+		 control_name="RenderFarClip"
+		 decimal_digits="0"
+		 follows="left|top"
+		 height="16"
+		 increment="8"
+		 initial_value="160"
+		 label="Draw distance:"
+		 label_width="185"
+		 layout="topleft"
+		 left="200"
+		 max_val="512"
+		 min_val="64"
+		 name="DrawDistance"
+		 top="3"
+		 width="296" />
 		<text
-		type="string"
-		length="1"
-		follows="left|top"
-		height="12"
-		layout="topleft"
-		left_delta="291"
-		name="DrawDistanceMeterText2"
-		top_delta="0"
-		width="128">
+		 type="string"
+		 length="1"
+		 follows="left|top"
+		 height="12"
+		 layout="topleft"
+		 left_delta="291"
+		 name="DrawDistanceMeterText2"
+		 top_delta="0"
+		 width="128">
 			m
 		</text>    
 		<slider
-		control_name="RenderMaxPartCount"
-		decimal_digits="0"
-		follows="left|top"
-		height="16"
-		increment="256"
-		initial_value="4096"
-		label="Max. particle count:"
-		label_width="185"
-		layout="topleft"
-		left="200"
-		max_val="8192"
-		name="MaxParticleCount"
-		top_pad="7"
-		width="303" />
-    <slider
-    control_name="RenderAvatarMaxVisible"
-    decimal_digits="0"
-    follows="left|top"
-    height="16"
-    increment="1"
-    initial_value="12"
-    label="Max. # of non-impostor avatars:"
-    label_width="185"
-    layout="topleft"
-    left_delta="0"
-    max_val="65"
-    min_val="1"
-    name="MaxNumberAvatarDrawn"
-    top_pad="4"
-    width="290" />
+		 control_name="RenderMaxPartCount"
+		 decimal_digits="0"
+		 follows="left|top"
+		 height="16"
+		 increment="256"
+		 initial_value="4096"
+		 label="Max. particle count:"
+		 label_width="185"
+		 layout="topleft"
+		 left="200"
+		 max_val="8192"
+		 name="MaxParticleCount"
+		 top_pad="7"
+		 width="303" />
+        <slider
+         control_name="RenderAvatarMaxVisible"
+         decimal_digits="0"
+         follows="left|top"
+         height="16"
+         increment="1"
+         initial_value="12"
+         label="Max. # of non-impostor avatars:"
+         label_width="185"
+         layout="topleft"
+         left_delta="0"
+         max_val="65"
+         min_val="1"
+         name="MaxNumberAvatarDrawn"
+         top_pad="4"
+         width="290" />
 		<slider
-		control_name="RenderGlowResolutionPow"
-		decimal_digits="0"
-		follows="left|top"
-		height="16"
-		increment="1"
-		initial_value="8"
-		label="Post process quality:"
-		label_width="185"
-		layout="topleft"
-		left="200"
-		max_val="9"
-		min_val="8"
-		name="RenderPostProcess"
-		show_text="false"
-		top_pad="4"
-		width="264">
+ 		 control_name="RenderGlowResolutionPow"
+		 decimal_digits="0"
+		 follows="left|top"
+		 height="16"
+		 increment="1"
+		 initial_value="8"
+		 label="Post process quality:"
+		 label_width="185"
+		 layout="topleft"
+		 left="200"
+		 max_val="9"
+		 min_val="8"
+		 name="RenderPostProcess"
+		 show_text="false"
+		 top_pad="4"
+		 width="264">
 			<slider.commit_callback
-			function="Pref.UpdateSliderText"
-			parameter="PostProcessText" />
+			 function="Pref.UpdateSliderText"
+			 parameter="PostProcessText" />
 		</slider>
 		<text
-		type="string"
-		length="1"
-		follows="left|top"
-		height="12"
-		layout="topleft"
-		left_delta="0"
-		name="MeshDetailText"
-		top_pad="5"
-		width="128">
+		 type="string"
+		 length="1"
+		 follows="left|top"
+		 height="12"
+		 layout="topleft"
+		 left_delta="0"
+		 name="MeshDetailText"
+		 top_pad="5"
+		 width="128">
 			Mesh detail:
 		</text>
 		<slider
-		control_name="RenderVolumeLODFactor"
-		follows="left|top"
-		height="16"
-		increment="0.125"
-		initial_value="160"
-		label="  Objects:"
-		label_width="185"
-		layout="topleft"
-		left_delta="0"
-		max_val="2"
-		name="ObjectMeshDetail"
-		show_text="false"
-		top_pad="6"
-		width="264">
+		 control_name="RenderVolumeLODFactor"
+		 follows="left|top"
+		 height="16"
+		 increment="0.125"
+		 initial_value="160"
+		 label="  Objects:"
+		 label_width="185"
+		 layout="topleft"
+		 left_delta="0"
+		 max_val="2"
+		 name="ObjectMeshDetail"
+		 show_text="false"
+		 top_pad="6"
+		 width="264">
 			<slider.commit_callback
-			function="Pref.UpdateSliderText"
-			parameter="ObjectMeshDetailText" />
+			 function="Pref.UpdateSliderText"
+			 parameter="ObjectMeshDetailText" />
 		</slider>
 		<slider
-		control_name="RenderFlexTimeFactor"
-		follows="left|top"
-		height="16"
-		initial_value="160"
-		label="  Flexiprims:"
-		label_width="185"
-		layout="topleft"
-		left_delta="0"
-		name="FlexibleMeshDetail"
-		show_text="false"
-		top_pad="4"
-		width="264">
+		 control_name="RenderFlexTimeFactor"
+		 follows="left|top"
+		 height="16"
+		 initial_value="160"
+		 label="  Flexiprims:"
+		 label_width="185"
+		 layout="topleft"
+		 left_delta="0"
+		 name="FlexibleMeshDetail"
+		 show_text="false"
+		 top_pad="4"
+		 width="264">
 			<slider.commit_callback
-			function="Pref.UpdateSliderText"
-			parameter="FlexibleMeshDetailText" />
+			 function="Pref.UpdateSliderText"
+			 parameter="FlexibleMeshDetailText" />
 		</slider>
         <slider
-        control_name="RenderTreeLODFactor"
-        follows="left|top"
-        height="16"
-        increment="0.125"
-        initial_value="160"
-        label="  Trees:"
-        label_width="185"
-        layout="topleft"
-        left_delta="0"
-        name="TreeMeshDetail"
-        show_text="false"
-        top_pad="4"
-        width="264">
-           <slider.commit_callback
-            function="Pref.UpdateSliderText"
-            parameter="TreeMeshDetailText" />
-        </slider>
+         control_name="RenderTreeLODFactor"
+         follows="left|top"
+         height="16"
+         increment="0.125"
+         initial_value="160"
+         label="  Trees:"
+         label_width="185"
+         layout="topleft"
+         left_delta="0"
+         name="TreeMeshDetail"
+         show_text="false"
+         top_pad="4"
+         width="264">
+            <slider.commit_callback
+             function="Pref.UpdateSliderText"
+             parameter="TreeMeshDetailText" />
+            </slider>
         <slider
-        control_name="RenderAvatarLODFactor"
-        follows="left|top"
-        height="16"
-        increment="0.125"
-        initial_value="160"
-        label="  Avatars:"
-        label_width="185"
-        layout="topleft"
-        left_delta="0"
-        name="AvatarMeshDetail"
-        show_text="false"
-        top_pad="4"
-        width="264">
-           <slider.commit_callback
-            function="Pref.UpdateSliderText"
-            parameter="AvatarMeshDetailText" />
+         control_name="RenderAvatarLODFactor"
+         follows="left|top"
+         height="16"
+         increment="0.125"
+         initial_value="160"
+         label="  Avatars:"
+         label_width="185"
+         layout="topleft"
+         left_delta="0"
+         name="AvatarMeshDetail"
+         show_text="false"
+         top_pad="4"
+         width="264">
+            <slider.commit_callback
+             function="Pref.UpdateSliderText"
+             parameter="AvatarMeshDetailText" />
         </slider>
         <slider
-        control_name="RenderTerrainLODFactor"
-        follows="left|top"
-        height="16"
-        increment="0.125"
-        initial_value="160"
-        label="  Terrain:"
-        label_width="185"
-        layout="topleft"
-        left_delta="0"
-        max_val="2"
-        min_val="1"
-        name="TerrainMeshDetail"
-        show_text="false"
-        top_pad="4"
-        width="264">
-           <slider.commit_callback
-            function="Pref.UpdateSliderText"
-            parameter="TerrainMeshDetailText" />
+         control_name="RenderTerrainLODFactor"
+         follows="left|top"
+         height="16"
+         increment="0.125"
+         initial_value="160"
+         label="  Terrain:"
+         label_width="185"
+         layout="topleft"
+         left_delta="0"
+         max_val="2"
+         min_val="1"
+         name="TerrainMeshDetail"
+         show_text="false"
+         top_pad="4"
+         width="264">
+            <slider.commit_callback
+             function="Pref.UpdateSliderText"
+             parameter="TerrainMeshDetailText" />
         </slider>
         <slider
-        control_name="WLSkyDetail"
-		enabled_control="WindLightUseAtmosShaders"
-        decimal_digits="0"
-        follows="left|top"
-        height="16"
-        increment="8"
-        initial_value="160"
-        label="  Sky:"
-        label_width="185"
-        layout="topleft"
-        left_delta="0"
-        max_val="128"
-        min_val="16"
-        name="SkyMeshDetail"
-        show_text="false"
-        top_pad="4"
-        width="264">
-           <slider.commit_callback
-            function="Pref.UpdateSliderText"
-            parameter="SkyMeshDetailText" />
+         control_name="WLSkyDetail"
+		 enabled_control="WindLightUseAtmosShaders"
+         decimal_digits="0"
+         follows="left|top"
+         height="16"
+         increment="8"
+         initial_value="160"
+         label="  Sky:"
+         label_width="185"
+         layout="topleft"
+         left_delta="0"
+         max_val="128"
+         min_val="16"
+         name="SkyMeshDetail"
+         show_text="false"
+         top_pad="4"
+         width="264">
+            <slider.commit_callback
+             function="Pref.UpdateSliderText"
+             parameter="SkyMeshDetailText" />
         </slider>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left="469"
-        name="PostProcessText"
-        top="60"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left="469"
+         name="PostProcessText"
+         top="60"
+         width="128">
+            Low
         </text>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="ObjectMeshDetailText"
-        top_pad="26"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="ObjectMeshDetailText"
+         top_pad="26"
+         width="128">
+            Low
         </text>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="FlexibleMeshDetailText"
-        top_pad="8"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="FlexibleMeshDetailText"
+         top_pad="8"
+         width="128">
+            Low
         </text>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="TreeMeshDetailText"
-        top_pad="8"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="TreeMeshDetailText"
+         top_pad="8"
+         width="128">
+            Low
         </text>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="AvatarMeshDetailText"
-        top_pad="8"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="AvatarMeshDetailText"
+         top_pad="8"
+         width="128">
+            Low
         </text>
         <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="TerrainMeshDetailText"
-        top_pad="8"
-        width="128">
-           Low
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="TerrainMeshDetailText"
+         top_pad="8"
+         width="128">
+            Low
         </text>
         <text
-		enabled_control="WindLightUseAtmosShaders"
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left_delta="0"
-        name="SkyMeshDetailText"
-        top_pad="8"
-        width="128">
-           Low
+		 enabled_control="WindLightUseAtmosShaders"
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="0"
+         name="SkyMeshDetailText"
+         top_pad="8"
+         width="128">
+            Low
         </text>
-      <text
-      type="string"
-      length="1"
-      follows="left|top"
-      height="12"
-      layout="topleft"
-      left_delta="-260"
-      name="AvatarRenderingText"
-        top_pad="18"
-      width="128">
-        Avatar rendering:
+        <text
+         type="string"
+         length="1"
+         follows="left|top"
+         height="12"
+         layout="topleft"
+         left_delta="-260"
+         name="AvatarRenderingText"
+         top_pad="18"
+         width="128">
+            Avatar rendering:
       </text>
       <check_box
-      control_name="RenderUseImpostors"
-      height="16"
-      initial_value="true"
-      label="Avatar impostors"
-      layout="topleft"
-      left_delta="0"
-      name="AvatarImpostors"
-      top_pad="7"
-      width="256" />
+       control_name="RenderUseImpostors"
+       height="16"
+       initial_value="true"
+       label="Avatar impostors"
+       layout="topleft"
+       left_delta="0"
+       name="AvatarImpostors"
+       top_pad="7"
+       width="256" />
       <check_box
-      control_name="RenderAvatarVP"
-      height="16"
-      initial_value="true"
-      label="Hardware skinning"
-      layout="topleft"
-      left_delta="0"
-      name="AvatarVertexProgram"
-      top_pad="1"
-      width="256">
-        <check_box.commit_callback
-        function="Pref.VertexShaderEnable" />
+       control_name="RenderAvatarVP"
+       height="16"
+       initial_value="true"
+       label="Hardware skinning"
+       layout="topleft"
+       left_delta="0"
+       name="AvatarVertexProgram"
+       top_pad="1"
+       width="256">
+          <check_box.commit_callback
+           function="Pref.VertexShaderEnable" />
       </check_box>
       <check_box
-      control_name="RenderAvatarCloth"
-      height="16"
-      initial_value="true"
-      label="Avatar cloth"
-      layout="topleft"
-      left_delta="0"
-      name="AvatarCloth"
-      top_pad="1"
-      width="256" />
-        <text
-        type="string"
-        length="1"
-        follows="left|top"
-        height="12"
-        layout="topleft"
-        left="358"
-        left_pad="-30"
-        name="TerrainDetailText"
-        top="226"
-        width="155">
-           Terrain detail:
-        </text>
-        <radio_group
-        control_name="RenderTerrainDetail"
-        draw_border="false"
-        height="38"
-        layout="topleft"
-        left_delta="0"
-        name="TerrainDetailRadio"
-        top_pad="5"
-        width="70">
-           <radio_item
-            height="16"
-            label="Low"
-            layout="topleft"
-            name="0"
-            top="3"
-            width="50" />
-           <radio_item
-            height="16"
-            label="High"
-            layout="topleft"
-            name="2"
-            top_delta="16"
-            width="50" />
-        </radio_group> -->
+       control_name="RenderAvatarCloth"
+       height="16"
+       initial_value="true"
+       label="Avatar cloth"
+       layout="topleft"
+       left_delta="0"
+       name="AvatarCloth"
+       top_pad="1"
+       width="256" />
+      <text
+       type="string"
+       length="1"
+       follows="left|top"
+       height="12"
+       layout="topleft"
+       left="358"
+       left_pad="-30"
+       name="TerrainDetailText"
+       top="226"
+       width="155">
+          Terrain detail:
+      </text>
+      <radio_group
+       control_name="RenderTerrainDetail"
+       draw_border="false"
+       height="38"
+       layout="topleft"
+       left_delta="0"
+       name="TerrainDetailRadio"
+       top_pad="5"
+       width="70">
+          <radio_item
+           height="16"
+           label="Low"
+           layout="topleft"
+           name="0"
+           top="3"
+           width="50" />
+          <radio_item
+           height="16"
+           label="High"
+           layout="topleft"
+           name="2"
+           top_delta="16"
+           width="50" />
+      </radio_group> -->
 	</panel>
 	
-        <button
+    <button
      follows="left|bottom"
      height="23"
      label="Apply"
@@ -701,8 +711,7 @@
      left="10"
      name="Apply"
      top="383"
-     width="115"
-      >
+     width="115">
         <button.commit_callback
          function="Pref.Apply" />
     </button>