diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 54b0805a6c05f9b5bcc28d0bd0d4b123f523a21a..68a1b1445e745adb516153e2d137ba9a64b65640 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -71,6 +71,9 @@
 #include "llwearableitemslist.h"
 #include "llwearabletype.h"
 #include "llweb.h"
+// [RLVa:KB] - Checked: 2010-09-16 (RLVa-1.2.1a)
+#include "rlvhandler.h"
+// [/RLVa:KB]
 
 static LLRegisterPanelClassWrapper<LLPanelOutfitEdit> t_outfit_edit("panel_outfit_edit");
 
@@ -592,6 +595,10 @@ void LLPanelOutfitEdit::toggleAddWearablesPanel()
 
 void LLPanelOutfitEdit::showAddWearablesPanel(bool show_add_wearables)
 {
+// [RLVa:KB] - Checked: 2010-09-16 (RLVa-1.2.1a) | Added: RLVa-1.2.1a
+	show_add_wearables = (show_add_wearables) && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWINV));
+// [/RLVa:KB]
+
 	mAddWearablesPanel->setVisible(show_add_wearables);
 	
 	getChild<LLUICtrl>("show_add_wearables_btn")->setValue(show_add_wearables);
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index 7206e4fcaf936b81365ce21689552b1c68a381ce..9c8f4715925847f12af22a7cc3506c64353fdfd3 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -521,3 +521,15 @@ void LLSidepanelAppearance::updateScrollingPanelList()
 		mEditWearable->updateScrollingPanelList();
 	}
 }
+
+// [RLVa:KB] - Checked: 2010-09-16 (RLVa-1.2.1a) | Added: RLVa-1.2.1a
+bool LLSidepanelAppearance::isOutfitEditPanelVisible() const
+{
+	return (mOutfitEdit) && (mOutfitEdit->getVisible());
+}
+
+bool LLSidepanelAppearance::isWearableEditPanelVisible() const
+{
+	return (mEditWearable) && (mEditWearable->getVisible());
+}
+// [/RLVa:KB]
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index f28cdfa49a2564a2b383b2bd5e8c85e8059c0a5b..6972a67dedb7c312ee7ada312923de46e484f13f 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -64,6 +64,14 @@ public:
 	void showDefaultSubpart();
 	void updateScrollingPanelList();
 
+// [RLVa:KB] - Checked: 2010-09-16 (RLVa-1.2.1a) | Added: RLVa-1.2.1a
+	bool isOutfitEditPanelVisible() const;
+	bool isWearableEditPanelVisible() const;
+
+	LLPanelOutfitEdit*	 getOutfitEditPanel() { return mOutfitEdit; }
+	LLPanelEditWearable* getWearableEditPanel() { return mEditWearable; }
+// [/RLVa:KB]
+
 private:
 	void onFilterEdit(const std::string& search_string);
 	void onVisibilityChange ( const LLSD& new_visibility );
diff --git a/indra/newview/rlvui.cpp b/indra/newview/rlvui.cpp
index 59c7a660e25249f5a210d8b385d961b44de657d2..fe4dfc570e4b779602f31fdab240387996758b3a 100644
--- a/indra/newview/rlvui.cpp
+++ b/indra/newview/rlvui.cpp
@@ -32,6 +32,7 @@
 #include "llparcel.h"
 #include "llsidetray.h"
 #include "llsidetraypanelcontainer.h"
+#include "llsidepanelappearance.h"
 #include "lltabcontainer.h"
 #include "llteleporthistory.h"
 #include "llteleporthistorystorage.h"
@@ -250,6 +251,14 @@ void RlvUIEnabler::onToggleShowInv()
 			if ( (!fEnable) && (pAppearanceTabs->getCurrentPanelIndex() == idxTab) )
 				pAppearanceTabs->selectTabPanel(pAppearancePanel->getCurrentOutfitPanel());
 		}
+
+		LLSidepanelAppearance* pCOFPanel = pAppearancePanel->getAppearanceSP();
+		RLV_ASSERT(pCOFPanel);
+		if ( (!fEnable) && (pCOFPanel) && (pCOFPanel->isOutfitEditPanelVisible()) )
+		{
+			// TODO-RLVa: we should really just be collapsing the "Add more..." inventory panel (and disable the button)
+			pCOFPanel->showOutfitsInventoryPanel();
+		}
 	}
 
 	//