diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index ae4306847c7530a2214b296e8b59afaaed57906c..f7a29cd317e3b6b9bf68ff66fa2a7671b00f23cf 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1080,7 +1080,10 @@ void LLViewerRegion::updateVisibleEntries(F32 max_time)
 		}
 		else
 		{
-			iter = mImpl->mVisibleEntries.erase(iter);
+			LLVOCacheEntry::vocache_entry_set_t::iterator next_iter = iter;
+			++next_iter;
+			mImpl->mVisibleEntries.erase(iter);
+			iter = next_iter;
 		}
 	}
 
@@ -1193,7 +1196,10 @@ void LLViewerRegion::clearCachedVisibleObjects()
 				parent->addChild(entry);
 			}
 
-			iter = mImpl->mVisibleEntries.erase(iter);
+			LLVOCacheEntry::vocache_entry_set_t::iterator next_iter = iter;
+			++next_iter;
+			mImpl->mVisibleEntries.erase(iter);
+			iter = next_iter;
 		}
 		else //parent is not cache-able, leave it.
 		{