diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index f672781f48045c1b3b3150e3fd5dd84e430fdb5b..aae3bd7f259717cea52d2216acbdd85f8c0788ee 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -2968,6 +2968,10 @@ void LLViewerMediaImpl::doMediaTexUpdate(LLViewerMediaTexture* media_tex, U8* da
     // wrap "data" in an LLImageRaw but do NOT make a copy
     LLPointer<LLImageRaw> raw = new LLImageRaw(data, media_tex->getWidth(), media_tex->getHeight(), media_tex->getComponents(), true);
         
+    // *NOTE: Recreating the GL texture each media update may seem wasteful
+    // (note the texture creation in preMediaTexUpdate), however, it apparently
+    // prevents GL calls from blocking, due to poor bookkeeping of state of
+    // updated textures by the OpenGL implementation.
     // Allocate GL texture based on LLImageRaw but do NOT copy to GL
     LLGLuint tex_name = 0;
     media_tex->createGLTexture(0, raw, 0, TRUE, LLGLTexture::OTHER, true, &tex_name);