diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 6cf6028ae064d37adb2790e2ba3e6e4a9b9aef4d..26f6987916c2a7abc85ee5f9b60cac6674d7cd8f 100755
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
@@ -589,14 +589,14 @@ void LLVOCacheEntry::updateParentBoundingInfo(const LLVOCacheEntry* child)
 //-------------------------------------------------------------------
 LLVOCacheGroup::~LLVOCacheGroup()
 {
-	for(S32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++)
-	{
-		if(mOcclusionState[i] & ACTIVE_OCCLUSION)
-		{
-			((LLVOCachePartition*)mSpatialPartition)->removeOccluder(this);
-			break;
-		}
-	}
+	//for(S32 i = 0; i < LLViewerCamera::NUM_CAMERAS; i++)
+	//{
+	//	if(mOcclusionState[i] & ACTIVE_OCCLUSION)
+	//	{
+	//		((LLVOCachePartition*)mSpatialPartition)->removeOccluder(this);
+	//		break;
+	//	}
+	//}
 }
 
 //virtual
@@ -979,7 +979,11 @@ void LLVOCachePartition::processOccluders(LLCamera* camera)
 			group->doOcclusion(camera, &shift);
 			group->clearOcclusionState(LLOcclusionCullingGroup::ACTIVE_OCCLUSION);
 		}
-	}	
+	}
+
+	//safe to clear mOccludedGroups here because only the world camera accesses it.
+	mOccludedGroups.clear();
+	sNeedsOcclusionCheck = FALSE;
 }
 
 void LLVOCachePartition::resetOccluders()