diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index 71657239a693fd5e3f6c7d92ad482283f9ce4dcb..c34010ce433d82d300bef6e2ca4a1cae8dad6d6b 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -157,6 +157,7 @@ BOOL	LLPanelFace::postBuild()
 
 	childSetAction("button align",&LLPanelFace::onClickAutoFix,this);
 	childSetAction("button align textures", &LLPanelFace::onAlignTexture, this);
+	childSetAction("button save material", &LLPanelFace::onSaveMaterial, this);
 
 	LLTextureCtrl*	mTextureCtrl;
 	LLTextureCtrl*	mShinyTextureCtrl;
@@ -1409,7 +1410,10 @@ void LLPanelFace::updateUI(bool force_set_values /*false*/)
 			LLMaterialPtr material;
 			LLSelectedTEMaterial::getCurrent(material, identical);
 
-			if (material && editable)
+            // QUICKHACK - enable this UI box, indiscriminatly.  TODO discriminate DJH 2022-04
+            childSetEnabled("button save material", true);
+            
+            if (material && editable)
 			{
 				LL_DEBUGS("Materials") << material->asLLSD() << LL_ENDL;
 
@@ -2538,6 +2542,16 @@ void LLPanelFace::onAlignTexture(void* userdata)
     self->alignTestureLayer();
 }
 
+void LLPanelFace::onSaveMaterial(void* userdata)
+{
+    LLPanelFace* self = (LLPanelFace*)userdata;
+    
+    // DRTVWR-559, Q&D material picker - save to inventory goes here
+    auto bound = self->getBoundingRect();
+    self->setUseBoundingRect(self->getUseBoundingRect());
+    //self->saveMaterialToInventory();
+}
+
 
 // TODO: I don't know who put these in or what these are for???
 void LLPanelFace::setMediaURL(const std::string& url)
diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h
index 2d57d89a44f5622fff5ccab80fc47cba0ff3caff..183e5736ca6f048cd0f74c4ef3e5f3371ba171df 100644
--- a/indra/newview/llpanelface.h
+++ b/indra/newview/llpanelface.h
@@ -204,6 +204,7 @@ class LLPanelFace : public LLPanel
 	static void		onCommitRepeatsPerMeter(	LLUICtrl* ctrl, void* userinfo);
 	static void		onClickAutoFix(void*);
     static void		onAlignTexture(void*);
+    static void		onSaveMaterial(void*);
 
 	static F32     valueGlow(LLViewerObject* object, S32 face);
 
diff --git a/indra/newview/skins/default/xui/en/panel_tools_texture.xml b/indra/newview/skins/default/xui/en/panel_tools_texture.xml
index 90f32ae4526b85e238b745cb279abbb6cf8f2c64..9aaac7ac85e069bbcc90beb0bebff9f8580dfda9 100644
--- a/indra/newview/skins/default/xui/en/panel_tools_texture.xml
+++ b/indra/newview/skins/default/xui/en/panel_tools_texture.xml
@@ -793,4 +793,16 @@
              height="4"
              start_url="about:blank"
              decouple_texture_size="true" />
-	   </panel>
+      <button
+       left="90"
+       top="222"
+       height="20"
+       label="Save as Material"
+       label_selected="Save current face as a Material"
+       layout="topleft"
+       name="button save material"
+       top_delta="0"
+       tool_tip="Save material to inventory"
+       width="110" />
+
+</panel>