diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp
index a7b87c4d9698468081d3ef85124fe46b9d9d8499..0010e626589a2818fd978a27e4d5ac16c5eb894b 100644
--- a/indra/llinventory/llsettingssky.cpp
+++ b/indra/llinventory/llsettingssky.cpp
@@ -1295,9 +1295,15 @@ void LLSettingsSky::calculateLightSettings() const
     mSunDiffuse = gammaCorrect(componentMult(sunlight, light_transmittance));
     mSunAmbient = gammaCorrect(componentMult(tmpAmbient, light_transmittance) * 0.5);
 
-    LLColor3 moonlight(0.75, 0.75, 0.92);
-    mMoonDiffuse  = gammaCorrect(componentMult(moonlight, light_transmittance) * 0.25f);
-    mMoonAmbient  = gammaCorrect(componentMult(moonlight, light_transmittance) * 0.125f);
+    F32 moon_brightness = getMoonBrightness();
+
+    LLColor3 moonlight_a(0.66, 0.66, 0.66);
+    LLColor3 moonlight_b(0.66, 0.66, 1.0);
+
+    LLColor3 moonlight = lerp(moonlight_b, moonlight_a, moon_brightness);
+    
+    mMoonDiffuse  = gammaCorrect(componentMult(moonlight, light_transmittance) * moon_brightness * 0.25f);
+    mMoonAmbient  = gammaCorrect(componentMult(moonlight_b, light_transmittance) * 0.0125f);
     mTotalAmbient = mSunAmbient;
 }
 
diff --git a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
index d964ce8eee343c40fc05e4be9ee5374423407e27..e257b668c8c302b42b7fb34dac1c3e75cb3b1bf4 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/moonF.glsl
@@ -52,7 +52,7 @@ void main()
 
     // mix factor which blends when sunlight is brighter
     // and shows true moon color at night
-    vec3 luma_weights = vec3(0.2, 0.3, 0.2);
+    vec3 luma_weights = vec3(0.3, 0.5, 0.3);
 
     float mix = 1.0 - dot(normalize(sunlight_color.rgb), luma_weights);
 
diff --git a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl
index 947c301110ea0a7bb43fb9e4a38f329da0b8a1a9..c8bbdd109dd7a586aba942d12a856b2df07cdf33 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/moonF.glsl
@@ -52,7 +52,7 @@ void main()
 
     // mix factor which blends when sunlight is brighter
     // and shows true moon color at night
-    vec3 luma_weights = vec3(0.2, 0.3, 0.2);
+    vec3 luma_weights = vec3(0.3, 0.5, 0.3);
     float mix = 1.0f - dot(normalize(sunlight_color.rgb), luma_weights);
 
     vec3 exp = vec3(1.0 - mix * moon_brightness) * 2.0 - 1.0;