diff --git a/indra/llcommon/llqueuedthread.cpp b/indra/llcommon/llqueuedthread.cpp
index 60304fff75c1fd76c2396eb062d986ad7a354b86..155e32ebae60eda8e685f931de685cb2ad9a308d 100644
--- a/indra/llcommon/llqueuedthread.cpp
+++ b/indra/llcommon/llqueuedthread.cpp
@@ -75,6 +75,11 @@ void LLQueuedThread::shutdown()
 	unpause(); // MAIN THREAD
 	if (mThreaded)
 	{
+        if (mRequestQueue.size() == 0)
+        {
+            mRequestQueue.close();
+        }
+
 		S32 timeout = 100;
 		for ( ; timeout>0; timeout--)
 		{
diff --git a/indra/llimage/tests/llimageworker_test.cpp b/indra/llimage/tests/llimageworker_test.cpp
index 57d922b1a1b2714e118ab35b5d7d4946419f6e75..d36d35aba4d3099f5323b6756b2cab69efcd302b 100644
--- a/indra/llimage/tests/llimageworker_test.cpp
+++ b/indra/llimage/tests/llimageworker_test.cpp
@@ -199,12 +199,6 @@ namespace tut
 		LLImageDecodeThread::handle_t decodeHandle = mThread->decodeImage(NULL, 0, FALSE, new responder_test(&done));
 		// Verifies we get back a valid handle
 		ensure("LLImageDecodeThread:  threaded decodeImage(), returned handle is null", decodeHandle != 0);
-		// Wait a little so to simulate the main thread doing something on its main loop...
-		ms_sleep(500);		// 500 milliseconds
-		// Verifies that the responder has *not* been called yet in the meantime
-		ensure("LLImageDecodeThread: responder creation failed", done == false);
-		// Ask the thread to update: that means tells the queue to check itself and creates work requests
-		mThread->update(1);
 		// Wait till the thread has time to handle the work order (though it doesn't do much per work order...)
 		const U32 INCREMENT_TIME = 500;				// 500 milliseconds
 		const U32 MAX_TIME = 20 * INCREMENT_TIME;	// Do the loop 20 times max, i.e. wait 10 seconds but no more
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 555355059a7899f61c17e4a81478b4c4bf9876fd..ac036bce318aa17d620bc69ceb3408b4c4c27fdc 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -1048,7 +1048,11 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time)
             {
                 iter = mUUIDMap.begin();
             }
-            entries.push_back(iter->second);
+            
+            if (iter->second->getGLTexture())
+            {
+                entries.push_back(iter->second);
+            }
             ++iter;
         }
     }