diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 7d2e08c1c6948237e424cdb21f932b4090c0c348..570bf9264c033543c216d710510fae01c0e4a02e 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1001,7 +1001,10 @@ F32 LLViewerRegion::updateVisibleEntries(F32 max_time)
 		{
 			if(vo_entry->getState() >= LLVOCacheEntry::WAITING)
 			{
-				iter = mImpl->mVisibleEntries.erase(iter);
+				LLVOCacheEntry::vocache_entry_set_t::iterator next_iter = iter;
+				++next_iter;
+				mImpl->mVisibleEntries.erase(iter);
+				iter = next_iter;
 			}
 			else
 			{