diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp
index 750e35a71a259bb08c8f4e3604ec7e36d98beb25..b30bc1aed65c0ac9d0e84096342d246bf93ebd91 100755
--- a/indra/llrender/llglslshader.cpp
+++ b/indra/llrender/llglslshader.cpp
@@ -348,6 +348,7 @@ void LLGLSLShader::unloadInternal()
         glGetAttachedObjectsARB(mProgramObject, sizeof(obj)/sizeof(obj[0]), &count, obj);
         for (GLsizei i = 0; i < count; i++)
         {
+            glDetachObjectARB(mProgramObject, obj[i]);
             glDeleteObjectARB(obj[i]);
         }