diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 4a8ca8373ad73a466ea72c5de0ff3882dcbbd57d..4f8923c6799845b9a93966dfca36bdc07f61272e 100644
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -403,11 +403,6 @@ BOOL LLGLSLShader::createShader(std::vector<LLStaticHashedString>* attributes,
 
     llassert_always(!mShaderFiles.empty());
 
-#if LL_DARWIN
-    // work-around missing mix(vec3,vec3,bvec3)
-    mDefines["OLD_SELECT"] = "1";
-#endif
-
     mShaderHash = hash();
 
     // Create program
diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index 6c133b204dca3af602c64869a7facefe899b49f1..c155d92e6a2b5d1daf85b95f59d85b0eca5be4e7 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -475,14 +475,6 @@ void LLShaderMgr::dumpObjectLog(GLuint ret, BOOL warns, const std::string& filen
 
 GLuint LLShaderMgr::loadShaderFile(const std::string& filename, S32 & shader_level, GLenum type, std::map<std::string, std::string>* defines, S32 texture_index_channels)
 {
-// endsure work-around for missing GLSL funcs gets propogated to feature shader files (e.g. srgbF.glsl)
-#if LL_DARWIN
-    if (defines)
-    {
-        (*defines)["OLD_SELECT"] = "1";
-    }
-#endif
-
 	GLenum error = GL_NO_ERROR;
 
 	error = glGetError();
diff --git a/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl b/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
index 6aeb0f66fa2ce1c32d6eb833399716ea09845f89..0e3023876df39a16b7d0686f0988d266e88b3d60 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/deferredUtil.glsl
@@ -198,11 +198,7 @@ float getDepth(vec2 pos_screen)
 
 vec4 getTexture2DLodAmbient(vec2 tc, float lod)
 {
-#ifndef FXAA_GLSL_120
     vec4 ret = textureLod(projectionMap, tc, lod);
-#else
-    vec4 ret = texture(projectionMap, tc);
-#endif
     ret.rgb = srgb_to_linear(ret.rgb);
 
     vec2 dist = tc-vec2(0.5);
@@ -214,11 +210,7 @@ vec4 getTexture2DLodAmbient(vec2 tc, float lod)
 
 vec4 getTexture2DLodDiffuse(vec2 tc, float lod)
 {
-#ifndef FXAA_GLSL_120
     vec4 ret = textureLod(projectionMap, tc, lod);
-#else
-    vec4 ret = texture(projectionMap, tc);
-#endif
     ret.rgb = srgb_to_linear(ret.rgb);
 
     vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
@@ -261,11 +253,7 @@ vec3 getProjectedLightDiffuseColor(float light_distance, vec2 projected_uv)
 
 vec4 texture2DLodSpecular(vec2 tc, float lod)
 {
-#ifndef FXAA_GLSL_120
     vec4 ret = textureLod(projectionMap, tc, lod);
-#else
-    vec4 ret = texture(projectionMap, tc);
-#endif
     ret.rgb = srgb_to_linear(ret.rgb);
 
     vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
diff --git a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
index 31b02377da73fa09ce1a9b5983fa0224beca0306..b866a7ed3f235b39de58d52d7293e7f539f65608 100644
--- a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl
@@ -31,16 +31,7 @@ vec3 srgb_to_linear(vec3 cs)
 	vec3 high_range = pow((cs+vec3(0.055))/vec3(1.055), vec3(2.4));
 	bvec3 lte = lessThanEqual(cs,vec3(0.04045));
 
-#ifdef OLD_SELECT
-	vec3 result;
-	result.r = lte.r ? low_range.r : high_range.r;
-	result.g = lte.g ? low_range.g : high_range.g;
-	result.b = lte.b ? low_range.b : high_range.b;
-    return result;
-#else
 	return mix(high_range, low_range, lte);
-#endif
-
 }
 
 vec3 linear_to_srgb(vec3 cl)
@@ -50,16 +41,7 @@ vec3 linear_to_srgb(vec3 cl)
 	vec3 high_range = 1.055 * pow(cl, vec3(0.41666)) - 0.055;
 	bvec3 lt = lessThan(cl,vec3(0.0031308));
 
-#ifdef OLD_SELECT
-	vec3 result;
-	result.r = lt.r ? low_range.r : high_range.r;
-	result.g = lt.g ? low_range.g : high_range.g;
-	result.b = lt.b ? low_range.b : high_range.b;
-    return result;
-#else
 	return mix(high_range, low_range, lt);
-#endif
-
 }
 
 vec3 ColorFromRadiance(vec3 radiance)