diff --git a/indra/llrender/llgltexture.cpp b/indra/llrender/llgltexture.cpp
index 56e263c5f1..fb5e40c2c5 100644
--- a/indra/llrender/llgltexture.cpp
+++ b/indra/llrender/llgltexture.cpp
@@ -130,6 +130,13 @@ void LLGLTexture::setActive()
{
mTextureState = ACTIVE ;
}
+
+ // Try to plug the profile icon memory hole
+ if (mBoostLevel == BOOST_ICON)
+ {
+ setNoDelete();
+ }
+ //
}
//set the texture to stay in memory
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 7398c7d527..3f12e8f646 100755
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1266,7 +1266,10 @@ void LLViewerFetchedTexture::setDeletionCandidate()
//set the texture inactive
void LLViewerFetchedTexture::setInactive()
{
- if(mTextureState == ACTIVE && mGLTexturep.notNull() && mGLTexturep->getTexName() && !mGLTexturep->getBoundRecently())
+ // Try to plug the profile icon memory hole
+ //if(mTextureState == ACTIVE && mGLTexturep.notNull() && mGLTexturep->getTexName() && !mGLTexturep->getBoundRecently())
+ if((mTextureState == ACTIVE || (mTextureState == NO_DELETE && mBoostLevel == BOOST_ICON)) && mGLTexturep.notNull() && mGLTexturep->getTexName() && !mGLTexturep->getBoundRecently())
+ //
{
mTextureState = INACTIVE;
}