diff --git a/indra/llrender/llimagegl.cpp b/indra/llrender/llimagegl.cpp
index bd9953e41820ed50cd5acf3014987b474b8d009a..2c13fead9792875737c789e5ae7a968f6b02578e 100755
--- a/indra/llrender/llimagegl.cpp
+++ b/indra/llrender/llimagegl.cpp
@@ -1464,13 +1464,24 @@ void LLImageGL::destroyGLTexture()
 		}
 		
 		LLImageGL::deleteTextures(1, &mTexName);			
+		mCurrentDiscardLevel = -1 ; //invalidate mCurrentDiscardLevel.
 		mTexName = 0;		
 		mGLTextureCreated = FALSE ;
-	}
-	mCurrentDiscardLevel = -1 ; //invalidate mCurrentDiscardLevel.
+	}	
 }
 
-
+//force to invalidate the gl texture, most likely a sculpty texture
+void LLImageGL::forceToInvalidateGLTexture()
+{
+	if (mTexName != 0)
+	{
+		destroyGLTexture();
+	}
+	else
+	{
+		mCurrentDiscardLevel = -1 ; //invalidate mCurrentDiscardLevel.
+	}
+}
 
 //----------------------------------------------------------------------------
 
diff --git a/indra/llrender/llimagegl.h b/indra/llrender/llimagegl.h
index 2060be914bc372718c0b68f24feec7352363d118..e515d6b324aa09c74a2c877c3495ebc776de761c 100755
--- a/indra/llrender/llimagegl.h
+++ b/indra/llrender/llimagegl.h
@@ -114,6 +114,7 @@ class LLImageGL : public LLRefCount
 	// Read back a raw image for this discard level, if it exists
 	BOOL readBackRaw(S32 discard_level, LLImageRaw* imageraw, bool compressed_ok) const;
 	void destroyGLTexture();
+	void forceToInvalidateGLTexture();
 
 	void setExplicitFormat(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format = 0, BOOL swap_bytes = FALSE);
 	void setComponents(S8 ncomponents) { mComponents = ncomponents; }
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index d83a5952202087c8fc5f7dc8d1362ac82dbab69d..ea329f6aaced4a5a7efb54f26e8336927156a934 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -2156,6 +2156,11 @@ void LLViewerFetchedTexture::clearFetchedResults()
 	
 	cleanup();
 	destroyGLTexture();
+
+	if(getDiscardLevel() >= 0) //sculpty texture, force to invalidate
+	{
+		mGLTexturep->forceToInvalidateGLTexture();
+	}
 }
 
 void LLViewerFetchedTexture::forceToDeleteRequest()