diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index c5a517578051618f52604f244495e33df6af424a..dbc3fe0ce5e2e2e7eb85d559bce4d745e2c31942 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2219,10 +2219,6 @@ void LLSelectMgr::selectionRevertGLTFMaterials()
                 LLUUID asset_id = nodep->mSavedGLTFMaterialIds[te];
                 objectp->setRenderMaterialID(te, asset_id, false /*wait for bulk update*/);
 
-                // Restore overrides
-                LLSD overrides;
-                overrides["object_id"] = objectp->getID();
-                overrides["side"] = te;
 
                 // todo: make sure this does not cause race condition with setRenderMaterialID
                 // when we are reverting from null id to non null plus override
@@ -2230,10 +2226,20 @@ void LLSelectMgr::selectionRevertGLTFMaterials()
                     && nodep->mSavedGLTFOverrideMaterials[te].notNull()
                     && asset_id.notNull())
                 {
+                    // Restore overrides
+                    LLSD overrides;
+                    overrides["object_id"] = objectp->getID();
+                    overrides["side"] = te;
+
                     overrides["gltf_json"] = nodep->mSavedGLTFOverrideMaterials[te]->asJSON();
-                } // else nothing to blank override out
+                    LLGLTFMaterialList::queueUpdate(overrides);
+                } 
+                else
+                {
+                    //blank override out
+                    LLGLTFMaterialList::queueApply(objectp->getID(), te, asset_id);
+                }
 
-                LLGLTFMaterialList::queueUpdate(overrides);
             }
             return true;
         }