diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 0f2af77f9d9ab599d14535a349a744039b6a2cc5..b8de5d34ebc507209ebfa43cd159370505d19052 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -714,6 +714,12 @@ void LLViewerTexture::setBoostLevel(S32 level)
 		}
 	}
 
+    // strongly encourage anything boosted to load at full res
+    if (mBoostLevel >= LLViewerTexture::BOOST_HIGH)
+    {
+        mMaxVirtualSize = 2048.f * 2048.f;
+    }
+
 	if (mBoostLevel == LLViewerTexture::BOOST_SELECTED)
 	{
 		mSelectedTime = gFrameTimeSeconds;
@@ -1963,11 +1969,11 @@ bool LLViewerFetchedTexture::updateFetch()
 		{
 			mFetchState = LLAppViewer::getTextureFetch()->getFetchState(mID, mDownloadProgress, mRequestedDownloadPriority,
 																		mFetchPriority, mFetchDeltaTime, mRequestDeltaTime, mCanUseHTTP);
-            if (mFetchState != mLastFetchState)
+            /*if (mFetchState != mLastFetchState)
             {
                 setDebugText(LLTextureFetch::getStateString(mFetchState));
                 mLastFetchState = mFetchState;
-            }
+            }*/
 		}
 		
 		// We may have data ready regardless of whether or not we are finished (e.g. waiting on write)
@@ -2031,7 +2037,7 @@ bool LLViewerFetchedTexture::updateFetch()
 		
 		if (!mIsFetching)
 		{
-			if ((decode_priority > 0) && (mRawDiscardLevel < 0 || mRawDiscardLevel == INVALID_DISCARD_LEVEL))
+			if ((decode_priority > 0) && (mRawDiscardLevel < 0))
 			{
 				// We finished but received no data
 				if (getDiscardLevel() < 0)
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index ece679459228c2c5eb4da600afaba2a7a03291a7..49d030bcb84474b5fe577465bbc6942abf823e7f 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -199,7 +199,7 @@ class LLViewerTexture : public LLGLTexture
 	S32 mTextureListType; // along with mID identifies where to search for this texture in TextureList
 
 	F32 mSelectedTime;				// time texture was last selected
-	mutable F32 mMaxVirtualSize;	// The largest virtual size of the image, in pixels - how much data to we need?	
+	mutable F32 mMaxVirtualSize = 0.f;	// The largest virtual size of the image, in pixels - how much data to we need?	
 	mutable S32  mMaxVirtualSizeResetCounter;
 	mutable S32  mMaxVirtualSizeResetInterval;
 	LLFrameTimer mLastReferencedTimer;	
@@ -490,7 +490,7 @@ class LLViewerFetchedTexture : public LLViewerTexture
 	F32             mLastCallBackActiveTime;
 
 	LLPointer<LLImageRaw> mRawImage;
-	S32 mRawDiscardLevel;
+	S32 mRawDiscardLevel = -1;
 
 	// Used ONLY for cloth meshes right now.  Make SURE you know what you're 
 	// doing if you use it for anything else! - djs