diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp
index 6ac93a56b9b4dbbb2474cf9e4382f4a132690089..5b8c2394b6b6a320607ece466939651cc650ac11 100644
--- a/indra/llrender/llshadermgr.cpp
+++ b/indra/llrender/llshadermgr.cpp
@@ -175,7 +175,7 @@ BOOL LLShaderMgr::attachShaderFeatures(LLGLSLShader * shader)
 	///////////////////////////////////////
 
 // NOTE order of shader object attaching is VERY IMPORTANT!!!
-    if (features->hasSrgb || features->hasAtmospherics || features->calculatesAtmospherics)
+    if (features->hasSrgb || features->hasAtmospherics || features->calculatesAtmospherics || features->isDeferred)
     {
         if (!shader->attachFragmentObject("environment/srgbF.glsl"))
         {
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index c017223aa48d60ee3406d90907d885dea42b96b2..58a76ce786bf9dc6e7172a14749f449d09b04575 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -1847,21 +1847,11 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
 		    }
 		    if (mItem)
 			{
-				if (te == -1) // all faces
-				{
-					LLToolDragAndDrop::dropTextureAllFaces(objectp,
-														   mItem,
-														   LLToolDragAndDrop::SOURCE_AGENT,
-														   LLUUID::null);
-				}
-				else // one face
-				{
-					LLToolDragAndDrop::dropTextureOneFace(objectp,
-														  te,
-														  mItem,
-														  LLToolDragAndDrop::SOURCE_AGENT,
-														  LLUUID::null);
-				}
+                LLToolDragAndDrop::dropTextureOneFace(objectp,
+                                                      te,
+                                                      mItem,
+                                                      LLToolDragAndDrop::SOURCE_AGENT,
+                                                      LLUUID::null);
 			}
 			else // not an inventory item
 			{
@@ -1941,6 +1931,12 @@ void LLSelectMgr::selectionSetGLTFMaterial(const LLUUID& mat_id)
             LLUUID asset_id = mMatId;
             if (mItem)
             {
+                // If success, the material may be copied into the object's inventory
+                BOOL success = LLToolDragAndDrop::handleDropMaterialProtections(objectp, mItem, LLToolDragAndDrop::SOURCE_AGENT, LLUUID::null);
+                if (!success)
+                {
+                    return false;
+                }
                 asset_id = mItem->getAssetUUID();
             }