diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index e50625af600c8b41f9c65552a6f0ef96df5151dc..619a9078beafa3c3f6a7d0ca86417314ec1097b4 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -363,8 +363,8 @@ void LLViewerShaderMgr::setShaders()
 
 	reentrance = true;
 
-	if (LLRender::sGLCoreProfile || gGLManager.mGLVersion >= 2.f)
-	{  //ALWAYS use shaders where available
+	if (LLRender::sGLCoreProfile || (gGLManager.mGLVersion >= 2.f && !gGLManager.mIsIntel))
+	{  //ALWAYS use shaders where available (except for intel, intel prefers fixed function)
 		if (!gSavedSettings.getBOOL("VertexShaderEnable"))
 		{ //vertex shaders MUST be enabled to use core profile
 			gSavedSettings.setBOOL("VertexShaderEnable", TRUE);