diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e8c9909f8cace5eb618251de21a3b318b00a10cf..a72244929ec9f000802d224ba3e2161d9fad48f2 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -4139,7 +4139,12 @@ void LLPipeline::renderHighlights()
 
 		glStencilFunc(GL_ALWAYS, 0, 0xFFFFFFFF);
 		glStencilOp(GL_REPLACE, GL_REPLACE, GL_REPLACE);
-				
+
+        if (canUseVertexShaders())
+        {
+            gHighlightProgram.bind();
+        }
+
 		gGL.setColorMask(false, false);
 		for (std::set<HighlightItem>::iterator iter = mHighlightSet.begin(); iter != mHighlightSet.end(); ++iter)
 		{
@@ -10507,6 +10512,11 @@ void LLPipeline::generateHighlight(LLCamera& camera)
 		gGL.setColorMask(true, true);
 		mHighlight.clear();
 
+        if (canUseVertexShaders())
+        {
+            gHighlightProgram.bind();
+        }
+
 		gGL.getTexUnit(0)->bind(LLViewerFetchedTexture::sWhiteImagep);
 		for (std::set<HighlightItem>::iterator iter = mHighlightSet.begin(); iter != mHighlightSet.end(); )
 		{