diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index e3dcc44c4d7e672f79c5303c8134cd71022c5c31..1e7d881bfe9e26b201e307c61b4d69813675a427 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -50,6 +50,8 @@
 #include "llsettingssky.h"
 #include "llsettingswater.h"
 
+#pragma optimize("", off)
+
 static float sTime;
 
 BOOL deferred_render = FALSE;
@@ -589,19 +591,32 @@ void LLDrawPoolWater::shade()
 	//bind normal map
 	S32 bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP);
 
-    if (mWaterNormp[0] && mWaterNormp[1])
+    if (mWaterNormp[0])
     {
 	    gGL.getTexUnit(bumpTex)->bind(mWaterNormp[0]) ;
-        gGL.getTexUnit(bumpTex + 1)->bind(mWaterNormp[1]) ;
 
 	    if (gSavedSettings.getBOOL("RenderWaterMipNormal"))
 	    {
 		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
-            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
 	    }
 	    else 
 	    {
 		    mWaterNormp[0]->setFilteringOption(LLTexUnit::TFO_POINT);
+	    }
+	}
+
+    if (mWaterNormp[1])
+    {
+        bumpTex = shader->enableTexture(LLViewerShaderMgr::BUMP_MAP2);
+
+        gGL.getTexUnit(bumpTex)->bind(mWaterNormp[1]) ;
+
+	    if (gSavedSettings.getBOOL("RenderWaterMipNormal"))
+	    {
+            mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_ANISOTROPIC);
+	    }
+	    else 
+	    {
             mWaterNormp[1]->setFilteringOption(LLTexUnit::TFO_POINT);
 	    }
 	}