diff --git a/indra/newview/llfloaterenvironmentadjust.cpp b/indra/newview/llfloaterenvironmentadjust.cpp
index 2c646799ffc221ab296b5c9dc9b9ff02178a0f38..3d19d560d644a1edee4338d22a97f20bdf1a7c16 100644
--- a/indra/newview/llfloaterenvironmentadjust.cpp
+++ b/indra/newview/llfloaterenvironmentadjust.cpp
@@ -32,8 +32,10 @@
 #include "llslider.h"
 #include "llsliderctrl.h"
 #include "llcolorswatch.h"
+#include "lltexturectrl.h"
 #include "llvirtualtrackball.h"
 #include "llenvironment.h"
+#include "llviewercontrol.h"
 
 //=========================================================================
 namespace
@@ -46,6 +48,8 @@ namespace
     const std::string FIELD_SKY_HAZE_HORIZON("haze_horizon");
     const std::string FIELD_SKY_HAZE_DENSITY("haze_density");
     const std::string FIELD_SKY_CLOUD_COVERAGE("cloud_coverage");
+    const std::string FIELD_SKY_CLOUD_MAP("cloud_map");
+    const std::string FIELD_WATER_NORMAL_MAP("water_normal_map");
     const std::string FIELD_SKY_CLOUD_SCALE("cloud_scale");
     const std::string FIELD_SKY_SCENE_GAMMA("scene_gamma");
     const std::string FIELD_SKY_SUN_ROTATION("sun_rotation");
@@ -97,6 +101,14 @@ BOOL LLFloaterEnvironmentAdjust::postBuild()
     getChild<LLUICtrl>(FIELD_SKY_MOON_ROTATION)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onMoonRotationChanged(); });
     getChild<LLUICtrl>(BTN_RESET)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onButtonReset(); });
 
+    getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onCloudMapChanged(); });
+    getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setDefaultImageAssetID(LLSettingsSky::GetDefaultCloudNoiseTextureId());
+    getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setAllowNoTexture(TRUE);
+
+    getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setDefaultImageAssetID(LLSettingsWater::GetDefaultWaterNormalAssetId());
+    getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setBlankImageAssetID(LLUUID(gSavedSettings.getString("DefaultBlankNormalTexture")));
+    getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setCommitCallback([this](LLUICtrl *, const LLSD &) { onWaterMapChanged(); });
+
     refresh();
     return TRUE;
 }
@@ -115,6 +127,7 @@ void LLFloaterEnvironmentAdjust::onClose(bool app_quitting)
 {
     mEventConnection.disconnect();
     mLiveSky.reset();
+    mLiveWater.reset();
     LLFloater::onClose(app_quitting);
 }
 
@@ -122,7 +135,7 @@ void LLFloaterEnvironmentAdjust::onClose(bool app_quitting)
 //-------------------------------------------------------------------------
 void LLFloaterEnvironmentAdjust::refresh()
 {
-    if (!mLiveSky)
+    if (!mLiveSky || !mLiveWater)
     {
         setAllChildrenEnabled(FALSE);
         return;
@@ -142,6 +155,9 @@ void LLFloaterEnvironmentAdjust::refresh()
     getChild<LLUICtrl>(FIELD_SKY_CLOUD_SCALE)->setValue(mLiveSky->getCloudScale());
     getChild<LLColorSwatchCtrl>(FIELD_SKY_SUN_COLOR)->set(mLiveSky->getSunlightColor() / SLIDER_SCALE_SUN_AMBIENT);
 
+    getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->setValue(mLiveSky->getCloudNoiseTextureId());
+    getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->setValue(mLiveWater->getNormalMapID());
+
     LLColor3 glow(mLiveSky->getGlow());
 
     // takes 40 - 0.2 range -> 0 - 1.99 UI range
@@ -165,22 +181,26 @@ void LLFloaterEnvironmentAdjust::captureCurrentEnvironment()
         if (environment.getEnvironmentDay(LLEnvironment::ENV_LOCAL))
         {   // We have a full day cycle in the local environment.  Freeze the sky
             mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_LOCAL)->buildClone();
+            mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_LOCAL)->buildClone();
             updatelocal = true;
         }
         else
         {   // otherwise we can just use the sky.
             mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_LOCAL);
+            mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_LOCAL);
         }
     }
     else
     {
         mLiveSky = environment.getEnvironmentFixedSky(LLEnvironment::ENV_PARCEL, true)->buildClone();
+        mLiveWater = environment.getEnvironmentFixedWater(LLEnvironment::ENV_PARCEL, true)->buildClone();
         updatelocal = true;
     }
 
     if (updatelocal)
     {
         environment.setEnvironment(LLEnvironment::ENV_LOCAL, mLiveSky, FLOATER_ENVIRONMENT_UPDATE);
+        environment.setEnvironment(LLEnvironment::ENV_LOCAL, mLiveWater, FLOATER_ENVIRONMENT_UPDATE);
     }
     environment.setSelectedEnvironment(LLEnvironment::ENV_LOCAL);
     environment.updateEnvironment(LLEnvironment::TRANSITION_INSTANT);
@@ -322,6 +342,22 @@ void LLFloaterEnvironmentAdjust::onMoonRotationChanged()
     mLiveSky->update();
 }
 
+void LLFloaterEnvironmentAdjust::onCloudMapChanged()
+{
+    if (!mLiveSky)
+        return;
+    mLiveSky->setCloudNoiseTextureId(getChild<LLTextureCtrl>(FIELD_SKY_CLOUD_MAP)->getValue().asUUID());
+    mLiveSky->update();
+}
+
+void LLFloaterEnvironmentAdjust::onWaterMapChanged()
+{
+    if (!mLiveWater)
+        return;
+    mLiveWater->setNormalMapID(getChild<LLTextureCtrl>(FIELD_WATER_NORMAL_MAP)->getValue().asUUID());
+    mLiveWater->update();
+}
+
 void LLFloaterEnvironmentAdjust::onSunColorChanged()
 {
     if (!mLiveSky)
diff --git a/indra/newview/llfloaterenvironmentadjust.h b/indra/newview/llfloaterenvironmentadjust.h
index 4876c45065f2c1930a6cb1fa91c59d6aa41de5c0..cb38dbcfa80e3362e4b754b38669be734d0e6696 100644
--- a/indra/newview/llfloaterenvironmentadjust.h
+++ b/indra/newview/llfloaterenvironmentadjust.h
@@ -77,11 +77,15 @@ class LLFloaterEnvironmentAdjust : public LLFloater
 
     void                        onMoonRotationChanged();
 
+    void                        onCloudMapChanged();
+    void                        onWaterMapChanged();
+
     void                        onButtonReset();
 
     void                        onEnvironmentUpdated(LLEnvironment::EnvSelection_t env, S32 version);
 
     LLSettingsSky::ptr_t        mLiveSky;
+    LLSettingsWater::ptr_t      mLiveWater;
     LLEnvironment::connection_t mEventConnection;
 };
 
diff --git a/indra/newview/skins/default/xui/en/floater_adjust_environment.xml b/indra/newview/skins/default/xui/en/floater_adjust_environment.xml
index fc356c10c72752ab590410a286d89dfb83147648..59589e3665e10cfa54a0f5cac7048e6a6a6ae8fe 100644
--- a/indra/newview/skins/default/xui/en/floater_adjust_environment.xml
+++ b/indra/newview/skins/default/xui/en/floater_adjust_environment.xml
@@ -5,14 +5,14 @@
          save_rect="false"
          title="Personal Lighting"
          width="845"
-         height="230"
+         height="240"
          min_width="500"
-         min_height="225"
+         min_height="235"
          single_instance="true"
          can_resize="false">
     <layout_stack name="outer_stack"
                   width="845"
-                  height="220"
+                  height="230"
                   follows="all"
                   animate="false"
                   top="0"
@@ -47,7 +47,7 @@
                           width="80">Ambient:</text>
                     <color_swatch can_apply_immediately="true"
                                   follows="left|top"
-                                  height="37"
+                                  height="40"
                                   label_height="0"
                                   layout="topleft"
                                   left_delta="0"
@@ -62,7 +62,7 @@
                           width="80">Blue Horizon:</text>
                     <color_swatch can_apply_immediately="true"
                                   follows="left|top"
-                                  height="37"
+                                  height="40"
                                   label_height="0"
                                   layout="topleft"
                                   left_delta="0"
@@ -77,7 +77,7 @@
                           width="80">Blue Density:</text>
                     <color_swatch can_apply_immediately="true"
                                   follows="left|top"
-                                  height="37"
+                                  height="40"
                                   label_height="0"
                                   layout="topleft"
                                   left_delta="0"
@@ -97,12 +97,12 @@
                     <text follows="right|top"
                           height="10"
                           layout="topleft"
-                          right="-10"
+                          right="-12"
                           top="5"
                           width="60">Sun Color:</text>
                     <color_swatch can_apply_immediately="true"
                                   follows="left|top"
-                                  height="37"
+                                  height="10"
                                   label_height="0"
                                   layout="topleft"
                                   left_delta="0"
@@ -113,17 +113,43 @@
                           height="10"
                           layout="topleft"
                           left_delta="0"
-                          top_pad="10"
+                          top_pad="5"
                           width="80">Cloud Color:</text>
                     <color_swatch can_apply_immediately="true"
                                   follows="left|top"
-                                  height="37"
+                                  height="10"
                                   label_height="0"
                                   layout="topleft"
                                   left_delta="0"
                                   name="cloud_color"
                                   top_pad="5"
                                   width="60"/>
+                    <text follows="left|top"
+                          height="10"
+                          layout="topleft"
+                          left_delta="0"
+                          top_pad="10"
+                          name="cloud_map_label"
+                          width="80">Cloud Image:</text>
+                    <texture_picker height="63"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    name="cloud_map"
+                                    top_pad="5"
+                                    width="60"/>
+                    <text follows="left|top"
+                          height="10"
+                          layout="topleft"
+                          left_delta="0"
+                          top_pad="-13"
+                          name="cloud_map_label"
+                          width="80">Water Image:</text>
+                    <texture_picker height="63"
+                                    layout="topleft"
+                                    left_delta="0"
+                                    name="water_normal_map"
+                                    top_pad="5"
+                                    width="60"/>
                 </layout_panel>
                 <layout_panel border="false"
                               bevel_style="in"
@@ -257,7 +283,7 @@
                                layout="topleft"
                                name="sunbeacon"
                                left_delta="55"
-                               bottom="-10"
+                               bottom="-20"
                                follows="bottom|right"/>
                     <text follows="left|top"
                           height="10"
@@ -366,7 +392,7 @@
                                layout="topleft"
                                name="moonbeacon"
                                right="-50"
-                               bottom="-10"
+                               bottom="-20"
                                follows="bottom|right"/>
                 </layout_panel>
             </layout_stack>