diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index f0b1f532a951c268f224823c089f3b316a86c4d5..fa67ee547c6daaf21d97b5a9faf1788bf77c2044 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -1,4 +1,4 @@
-version 28
+version 29
 
 // NOTE: This is mostly identical to featuretable_mac.txt with a few differences
 // Should be combined into one table
@@ -47,7 +47,7 @@ RenderTerrainLODFactor			1	2.0
 RenderTransparentWater			1	1
 RenderTreeLODFactor				1	1.0
 RenderUseImpostors				1	1
-RenderVBOEnable					1	1
+RenderVBOEnable					1	0
 RenderVBOMappingDisable		1	0
 RenderVolumeLODFactor			1	2.0
 UseStartScreen				1	1
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index a5168fd897bccae01cf8336b9aa914afc6b58dd0..debac9dcbfd9dd4ebf10bb30f3deda6c1f2e0ad5 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -1524,11 +1524,6 @@ BOOL LLDrawable::isAnimating() const
 		return TRUE;
 	}
 
-	if (!LLVertexBuffer::sUseStreamDraw && mVObjp->isFlexible())
-	{
-		return TRUE;
-	}
-
 	return FALSE;
 }
 
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index 59c6e904a13fc139e5137e5325294ea69b59333a..17b6912b63305bc8a1a5a1cd977193d01556be65 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -1621,6 +1621,8 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 
 	if (rebuild_pos)
 	{
+		llassert(num_vertices > 0);
+		
 		mVertexBuffer->getVertexStrider(vert, mGeomIndex, mGeomCount, map_range);
 		vertices = (LLVector4a*) vert.get();
 	
@@ -1649,7 +1651,15 @@ BOOL LLFace::getGeometryVolume(const LLVolume& volume,
 			index_dst += 4;
 		}
 		while (index_dst < index_end);
-
+		
+		S32 aligned_pad_vertices = mGeomCount - num_vertices;
+		LLVector4a* last_vec = end - 1;
+		while (aligned_pad_vertices > 0)
+		{
+			--aligned_pad_vertices;
+			*dst++ = *last_vec;
+		}
+		
 		if (map_range)
 		{
 			mVertexBuffer->setBuffer(0);
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index bd801ae4c2d218f0e5b211038c91270a2ad90cd9..3e35e0e41ae77b5529f14f6b117b06367da6848d 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -3686,8 +3686,6 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
 
 	LLVertexBuffer::unbind();
 	LLGLState::checkStates();
-	//LLGLState::checkTextureChannels();
-	//LLGLState::checkClientArrays();
 
 	LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderHighlights");
 
@@ -3825,8 +3823,6 @@ void LLPipeline::renderGeomDeferred(LLCamera& camera)
 						llerrs << "GL matrix stack corrupted!" << llendl;
 					}
 					LLGLState::checkStates();
-					LLGLState::checkTextureChannels();
-					LLGLState::checkClientArrays();
 				}
 			}
 		}
@@ -3919,8 +3915,6 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
 						llerrs << "GL matrix stack corrupted!" << llendl;
 					}
 					LLGLState::checkStates();
-					LLGLState::checkTextureChannels();
-					LLGLState::checkClientArrays();
 				}
 			}
 		}
@@ -3995,8 +3989,6 @@ void LLPipeline::renderGeomShadow(LLCamera& camera)
 				LLVertexBuffer::unbind();
 
 				LLGLState::checkStates();
-				LLGLState::checkTextureChannels();
-				LLGLState::checkClientArrays();
 			}
 		}
 		else
@@ -8123,8 +8115,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
 		LLViewerCamera::getInstance()->setUserClipPlane(npnorm);
 		
 		LLGLState::checkStates();
-		//LLGLState::checkTextureChannels();
-		//LLGLState::checkClientArrays();
 
 		if (!skip_avatar_update)
 		{