diff --git a/indra/llcommon/llmemory.cpp b/indra/llcommon/llmemory.cpp
index f1285841b3f84b4da51b659a893520fba0ddb189..1f40f5e17af6c0d5b6edf82d91b6366cc1d50791 100644
--- a/indra/llcommon/llmemory.cpp
+++ b/indra/llcommon/llmemory.cpp
@@ -1248,13 +1248,18 @@ S32  LLPrivateMemoryPool::getChunkIndex(U32 size)
 void  LLPrivateMemoryPool::destroyPool()
 {
 	lock() ;
-	for(U32 i = 0 ; i < mHashFactor; i++)
+	if(mNumOfChunks > 0)
 	{
-		while(mChunkHashList[i])
+		for(U32 i = 0 ; i < mHashFactor; i++)
 		{
-			removeChunk(mChunkHashList[i]) ;
+			while(mChunkHashList[i])
+			{
+				removeChunk(mChunkHashList[i]) ;
+			}
 		}
 	}
+	mChunkHashList.clear() ;
+	mHashFactor = 1 ;
 	llassert_always(mNumOfChunks == 0) ;
 	llassert_always(mReservedPoolSize == 0) ;