diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index 84f94d4497781477b1cfa2c78a0e86673ad0d344..82a95ac7a826f34791fd014038fe0a6453e880d7 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -545,10 +545,10 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)
         LLSpatialPartition* partition = group->getSpatialPartition();
 		llassert(partition);
 
-		if (group->getSpatialPartition()->mRenderByGroup && !group->isDead())
+		if (partition->mRenderByGroup && !group->isDead())
 		{
-			bool is_particle_or_hud_particle = group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_PARTICLE
-											|| group->getSpatialPartition()->mPartitionType == LLViewerRegion::PARTITION_HUD_PARTICLE;
+			bool is_particle_or_hud_particle = partition->mPartitionType == LLViewerRegion::PARTITION_PARTICLE
+											|| partition->mPartitionType == LLViewerRegion::PARTITION_HUD_PARTICLE;
 
             std::vector<LLDrawInfo*>* fullbrights = is_particle_or_hud_particle ? &fullbrights_hud : &fullbrights_3d;
             std::vector<LLDrawInfo*>* materials   = is_particle_or_hud_particle ? &materials_hud   : &materials_3d;
@@ -590,9 +590,9 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)
     renderFullbrights(mask, fullbrights_hud);
     renderMaterials(mask, materials_hud);
     renderEmissives(mask, emissives_hud);
-
-    LLGLSLShader::bindNoShader();
-    current_shader = NULL;
+    
+    simple_shader->bind();
+    current_shader = simple_shader;
 
 	gGL.setSceneBlendType(LLRender::BT_ALPHA);
 
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 4bebf39dbc2b8a58af76665b63125c6aa99cfc57..fe14d254b4689b4e7b547ca4ecd08c492b04583c 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -9962,6 +9962,16 @@ bool LLPipeline::getVisiblePointCloud(LLCamera& camera, LLVector3& min, LLVector
 
 void LLPipeline::renderHighlight(const LLViewerObject* obj, F32 fade)
 {
+    BOOL shaders = canUseVertexShaders();
+	if(shaders) 
+	{
+		gHighlightProgram.bind();
+	}
+	else
+	{
+		gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
+	}
+
     if (obj && obj->getVolume())
     {
         for (LLViewerObject::child_list_t::const_iterator iter = obj->getChildren().begin(); iter != obj->getChildren().end(); ++iter)