diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index 820073b3e0a52aaf3c6ab9c01956c450c6c4c3f3..05ee328e4320e6409ad165b953e791bb3da68d06 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -265,6 +265,11 @@ void LLDrawPoolWLSky::renderSkyCloudsDeferred(const LLVector3& camPosLocal, F32
         F32 cloud_variance = psky ? psky->getCloudVariance() : 0.0f;
         F32 blend_factor   = psky ? psky->getBlendFactor() : 0.0f;
 
+        if (psky->getCloudScrollRate().isExactlyZero())
+        {
+            blend_factor = 0.f;
+        }
+
         // if we even have sun disc textures to work with...
         if (cloud_noise || cloud_noise_next)
         {
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp
index 9fe8b000711d3963622ae4459115c03064ed935b..51e5aae6de194d8fae87df8d8b496ea1ef57777f 100644
--- a/indra/newview/llenvironment.cpp
+++ b/indra/newview/llenvironment.cpp
@@ -1687,8 +1687,16 @@ void LLEnvironment::updateCloudScroll()
     
     if (mCurrentEnvironment->getSky() && !mCloudScrollPaused)
     {
-        LLVector2 cloud_delta = static_cast<F32>(delta_t)* (mCurrentEnvironment->getSky()->getCloudScrollRate()) / 100.0;
-        mCloudScrollDelta += cloud_delta;
+        LLVector2 rate = mCurrentEnvironment->getSky()->getCloudScrollRate();
+        if (rate.isExactlyZero())
+        {
+            mCloudScrollDelta.setZero();
+        }
+        else
+        {
+            LLVector2 cloud_delta = static_cast<F32>(delta_t) * (mCurrentEnvironment->getSky()->getCloudScrollRate()) / 100.0;
+            mCloudScrollDelta += cloud_delta;
+        }
     }
 
 }