diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index 01932949e439ea47a295712894e5acd9e4775be7..f356a04fa4b5cda8e47f97c4e88b5497f51ce8ba 100644
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -163,7 +163,7 @@ class CofClothingContextMenu : public CofContextMenu
 	}
 
 protected:
-	static void replaceWearable(const LLUUID& item_id)
+	static void replaceWearable()
 	{
 		// *TODO: Most probable that accessing to LLPanelOutfitEdit instance should be:
 		// LLSideTray::getInstance()->getSidepanelAppearance()->getPanelOutfitEdit()
@@ -175,7 +175,7 @@ class CofClothingContextMenu : public CofContextMenu
 								"panel_outfit_edit"));
 		if (panel_outfit_edit != NULL)
 		{
-			panel_outfit_edit->onReplaceMenuItemClicked(item_id);
+			panel_outfit_edit->showAddWearablesPanel(true);
 		}
 	}
 
@@ -187,7 +187,7 @@ class CofClothingContextMenu : public CofContextMenu
 		functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
 
 		registrar.add("Clothing.TakeOff", boost::bind(handleMultiple, take_off, mUUIDs));
-		registrar.add("Clothing.Replace", boost::bind(replaceWearable, selected_id));
+		registrar.add("Clothing.Replace", boost::bind(replaceWearable));
 		registrar.add("Clothing.Edit", boost::bind(LLAgentWearables::editWearable, selected_id));
 		registrar.add("Clothing.Create", boost::bind(&CofClothingContextMenu::createNew, this, selected_id));
 
@@ -244,7 +244,7 @@ class CofBodyPartContextMenu : public CofContextMenu
 		// *HACK* need to pass pointer to LLPanelOutfitEdit instead of LLSideTray::getInstance()->getPanel().
 		// LLSideTray::getInstance()->getPanel() is rather slow variant
 		LLPanelOutfitEdit* panel_oe = dynamic_cast<LLPanelOutfitEdit*>(LLSideTray::getInstance()->getPanel("panel_outfit_edit"));
-		registrar.add("BodyPart.Replace", boost::bind(&LLPanelOutfitEdit::onReplaceMenuItemClicked, panel_oe, selected_id));
+		registrar.add("BodyPart.Replace", boost::bind(&LLPanelOutfitEdit::onReplaceBodyPartMenuItemClicked, panel_oe, selected_id));
 		registrar.add("BodyPart.Edit", boost::bind(LLAgentWearables::editWearable, selected_id));
 		registrar.add("BodyPart.Create", boost::bind(&CofBodyPartContextMenu::createNew, this, selected_id));
 
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 6c6f8300001f96f15315088cf60627679f2250db..38f637cabf3d2c8b435f5dcd1ea513b70bf6f1f9 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -42,8 +42,8 @@
 #include "lloutfitobserver.h"
 #include "llcofwearables.h"
 #include "llfilteredwearablelist.h"
-#include "llfolderviewitem.h"
 #include "llinventory.h"
+#include "llinventoryitemslist.h"
 #include "llviewercontrol.h"
 #include "llui.h"
 #include "llfloater.h"
@@ -85,11 +85,6 @@ const U64 ALL_ITEMS_MASK = WEARABLE_MASK | ATTACHMENT_MASK;
 
 static const std::string REVERT_BTN("revert_btn");
 
-
-///////////////////////////////////////////////////////////////////////////////
-// LLShopURLDispatcher
-///////////////////////////////////////////////////////////////////////////////
-
 class LLShopURLDispatcher
 {
 public:
@@ -149,10 +144,6 @@ std::string LLShopURLDispatcher::resolveURL(LLAssetType::EType asset_type, ESex
 	return gSavedSettings.getString(setting_name);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-// LLPanelOutfitEditGearMenu
-///////////////////////////////////////////////////////////////////////////////
-
 class LLPanelOutfitEditGearMenu
 {
 public:
@@ -168,6 +159,7 @@ class LLPanelOutfitEditGearMenu
 		if (menu)
 		{
 			populateCreateWearableSubmenus(menu);
+			menu->buildDrawLabels();
 		}
 
 		return menu;
@@ -216,131 +208,6 @@ class LLPanelOutfitEditGearMenu
 	}
 };
 
-///////////////////////////////////////////////////////////////////////////////
-// LLAddWearablesGearMenu
-///////////////////////////////////////////////////////////////////////////////
-
-class LLAddWearablesGearMenu : public LLInitClass<LLAddWearablesGearMenu>
-{
-public:
-	static LLMenuGL* create(LLWearableItemsList* flat_list, LLInventoryPanel* inventory_panel)
-	{
-		LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
-		LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
-
-		llassert(flat_list);
-		llassert(inventory_panel);
-
-		registrar.add("AddWearable.Gear.Sort", boost::bind(onSort, flat_list, inventory_panel, _2));
-		enable_registrar.add("AddWearable.Gear.Check", boost::bind(onCheck, flat_list, inventory_panel, _2));
-		enable_registrar.add("AddWearable.Gear.Visible", boost::bind(onVisible, inventory_panel, _2));
-
-		LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
-			"menu_add_wearable_gear.xml",
-			LLMenuGL::sMenuContainer, LLViewerMenuHolderGL::child_registry_t::instance());
-
-		return menu;
-	}
-
-private:
-	static void onSort(LLWearableItemsList* flat_list,
-					   LLInventoryPanel* inventory_panel,
-					   LLSD::String sort_order_str)
-	{
-		if (!flat_list || !inventory_panel) return;
-
-		LLWearableItemsList::ESortOrder	sort_order;
-
-		if ("by_most_recent" == sort_order_str)
-		{
-			sort_order = LLWearableItemsList::E_SORT_BY_MOST_RECENT;
-		}
-		else if ("by_name" == sort_order_str)
-		{
-			sort_order = LLWearableItemsList::E_SORT_BY_NAME;
-		}
-		else if ("by_type" == sort_order_str)
-		{
-			sort_order = LLWearableItemsList::E_SORT_BY_TYPE;
-		}
-		else
-		{
-			llwarns << "Unrecognized sort order action" << llendl;
-			return;
-		}
-
-		if (inventory_panel->getVisible())
-		{
-			inventory_panel->setSortOrder(sort_order);
-		}
-		else
-		{
-			flat_list->setSortOrder(sort_order);
-			gSavedSettings.setU32("AddWearableSortOrder", sort_order);
-		}
-	}
-
-	static bool onCheck(LLWearableItemsList* flat_list,
-						LLInventoryPanel* inventory_panel,
-						LLSD::String sort_order_str)
-	{
-		if (!inventory_panel || !flat_list) return false;
-
-		// Inventory panel uses its own sort order independent from
-		// flat list view so this flag is used to distinguish between
-		// currently visible "tree" or "flat" representation of inventory.
-		bool inventory_tree_visible = inventory_panel->getVisible();
-
-		if (inventory_tree_visible)
-		{
-			U32 sort_order = inventory_panel->getSortOrder();
-
-			if ("by_most_recent" == sort_order_str)
-			{
-				return LLWearableItemsList::E_SORT_BY_MOST_RECENT & sort_order;
-			}
-			else if ("by_name" == sort_order_str)
-			{
-				// If inventory panel is not sorted by date then it is sorted by name.
-				return LLWearableItemsList::E_SORT_BY_MOST_RECENT & ~sort_order;
-			}
-			llwarns << "Unrecognized inventory panel sort order" << llendl;
-		}
-		else
-		{
-			LLWearableItemsList::ESortOrder	sort_order = flat_list->getSortOrder();
-
-			if ("by_most_recent" == sort_order_str)
-			{
-				return LLWearableItemsList::E_SORT_BY_MOST_RECENT == sort_order;
-			}
-			else if ("by_name" == sort_order_str)
-			{
-				return LLWearableItemsList::E_SORT_BY_NAME == sort_order;
-			}
-			else if ("by_type" == sort_order_str)
-			{
-				return LLWearableItemsList::E_SORT_BY_TYPE == sort_order;
-			}
-			llwarns << "Unrecognized wearable list sort order" << llendl;
-		}
-		return false;
-	}
-
-	static bool onVisible(LLInventoryPanel* inventory_panel,
-						  LLSD::String sort_order_str)
-	{
-		// Enable sorting by type only for the flat list of items
-		// because inventory panel doesn't support this kind of sorting.
-		return ( "by_type" == sort_order_str )
-				&&	( !inventory_panel || !inventory_panel->getVisible() );
-	}
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// LLCOFDragAndDropObserver
-///////////////////////////////////////////////////////////////////////////////
-
 class LLCOFDragAndDropObserver : public LLInventoryAddItemByAssetObserver
 {
 public:
@@ -376,17 +243,12 @@ void LLCOFDragAndDropObserver::done()
 	LLAppearanceMgr::instance().updateAppearanceFromCOF();
 }
 
-///////////////////////////////////////////////////////////////////////////////
-// LLPanelOutfitEdit
-///////////////////////////////////////////////////////////////////////////////
-
 LLPanelOutfitEdit::LLPanelOutfitEdit()
 :	LLPanel(), 
 	mSearchFilter(NULL),
 	mCOFWearables(NULL),
 	mInventoryItemsPanel(NULL),
 	mGearMenu(NULL),
-	mAddWearablesGearMenu(NULL),
 	mCOFDragAndDropObserver(NULL),
 	mInitialized(false),
 	mAddWearablesPanel(NULL),
@@ -441,7 +303,7 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.All"), new LLFindNonLinksByMask(ALL_ITEMS_MASK)));
 	mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Clothing"), new LLIsTypeActual(LLAssetType::AT_CLOTHING)));
 	mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Bodyparts"), new LLIsTypeActual(LLAssetType::AT_BODYPART)));
-	mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Objects"), new LLFindNonLinksByMask(ATTACHMENT_MASK)));;
+	mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Objects"), new LLFindByMask(ATTACHMENT_MASK)));;
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("shape"), new LLFindActualWearablesOfType(LLWearableType::WT_SHAPE)));
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("skin"), new LLFindActualWearablesOfType(LLWearableType::WT_SKIN)));
 	mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("hair"), new LLFindActualWearablesOfType(LLWearableType::WT_HAIR)));
@@ -466,9 +328,7 @@ BOOL LLPanelOutfitEdit::postBuild()
 
 	childSetCommitCallback("filter_button", boost::bind(&LLPanelOutfitEdit::showWearablesFilter, this), NULL);
 	childSetCommitCallback("folder_view_btn", boost::bind(&LLPanelOutfitEdit::showWearablesFolderView, this), NULL);
-	childSetCommitCallback("folder_view_btn", boost::bind(&LLPanelOutfitEdit::saveListSelection, this), NULL);
 	childSetCommitCallback("list_view_btn", boost::bind(&LLPanelOutfitEdit::showWearablesListView, this), NULL);
-	childSetCommitCallback("list_view_btn", boost::bind(&LLPanelOutfitEdit::saveListSelection, this), NULL);
 	childSetCommitCallback("wearables_gear_menu_btn", boost::bind(&LLPanelOutfitEdit::onGearButtonClick, this, _1), NULL);
 	childSetCommitCallback("gear_menu_btn", boost::bind(&LLPanelOutfitEdit::onGearButtonClick, this, _1), NULL);
 	childSetCommitCallback("shop_btn_1", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL);
@@ -541,12 +401,11 @@ BOOL LLPanelOutfitEdit::postBuild()
 	mWearableListViewItemsComparator->setOrder(LLAssetType::AT_CLOTHING, LLWearableItemTypeNameComparator::ORDER_RANK_1, false, true);
 
 	mWearablesListViewPanel = getChild<LLPanel>("filtered_wearables_panel");
-	mWearableItemsList = getChild<LLWearableItemsList>("list_view");
+	mWearableItemsList = getChild<LLInventoryItemsList>("list_view");
 	mWearableItemsList->setCommitOnSelectionChange(true);
 	mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this));
 	mWearableItemsList->setDoubleClickCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
 	mWearableItemsList->setComparator(mWearableListViewItemsComparator);
-        mWearableItemsList->setSortOrder((LLWearableItemsList::ESortOrder)gSavedSettings.getU32("AddWearableSortOrder"));
 
 	mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this));
 	return TRUE;
@@ -630,7 +489,9 @@ void LLPanelOutfitEdit::showWearablesListView()
 {
 	if(switchPanels(mInventoryItemsPanel, mWearablesListViewPanel))
 	{
-		updateWearablesPanelVerbButtons();
+		mFolderViewBtn->setToggleState(FALSE);
+		mFolderViewBtn->setImageOverlay(getString("folder_view_off"), mFolderViewBtn->getImageOverlayHAlign());
+		mListViewBtn->setImageOverlay(getString("list_view_on"), mListViewBtn->getImageOverlayHAlign());
 		updateFiltersVisibility();
 	}
 	mListViewBtn->setToggleState(TRUE);
@@ -640,7 +501,9 @@ void LLPanelOutfitEdit::showWearablesFolderView()
 {
 	if(switchPanels(mWearablesListViewPanel, mInventoryItemsPanel))
 	{
-		updateWearablesPanelVerbButtons();
+		mListViewBtn->setToggleState(FALSE);
+		mListViewBtn->setImageOverlay(getString("list_view_off"), mListViewBtn->getImageOverlayHAlign());
+		mFolderViewBtn->setImageOverlay(getString("folder_view_on"), mFolderViewBtn->getImageOverlayHAlign());
 		updateFiltersVisibility();
 	}
 	mFolderViewBtn->setToggleState(TRUE);
@@ -761,11 +624,11 @@ void LLPanelOutfitEdit::onAddWearableClicked(void)
 	}
 }
 
-void LLPanelOutfitEdit::onReplaceMenuItemClicked(LLUUID selected_item_id)
+void LLPanelOutfitEdit::onReplaceBodyPartMenuItemClicked(LLUUID selected_item_id)
 {
 	LLViewerInventoryItem* item = gInventory.getLinkedItem(selected_item_id);
 
-	if (item)
+	if (item && item->getType() == LLAssetType::AT_BODYPART)
 	{
 		showFilteredWearablesListView(item->getWearableType());
 	}
@@ -1169,8 +1032,6 @@ bool LLPanelOutfitEdit::switchPanels(LLPanel* switch_from_panel, LLPanel* switch
 void LLPanelOutfitEdit::resetAccordionState()
 {
 	if (mCOFWearables != NULL)
-
-	if (mAddWearablesPanel->getVisible())
 	{
 		mCOFWearables->expandDefaultAccordionTab();
 	}
@@ -1178,25 +1039,17 @@ void LLPanelOutfitEdit::resetAccordionState()
 	{
 		llwarns << "mCOFWearables is NULL" << llendl;
 	}
+}
 
-		menu = mAddWearablesGearMenu;
-	}
-	else
+void LLPanelOutfitEdit::onGearButtonClick(LLUICtrl* clicked_button)
+{
+	if(!mGearMenu)
 	{
-		if (!mGearMenu)
-		{
-			mGearMenu = LLPanelOutfitEditGearMenu::create();
-		}
-
-		menu = mGearMenu;
+		mGearMenu = LLPanelOutfitEditGearMenu::create();
 	}
 
-	if (!menu) return;
-
-	menu->arrangeAndClear(); // update menu height
-	S32 menu_y = menu->getRect().getHeight() + clicked_button->getRect().getHeight();
-	menu->buildDrawLabels();
-	LLMenuGL::showPopup(clicked_button, menu, 0, menu_y);
+	S32 menu_y = mGearMenu->getRect().getHeight() + clicked_button->getRect().getHeight();
+	LLMenuGL::showPopup(clicked_button, mGearMenu, 0, menu_y);
 }
 
 void LLPanelOutfitEdit::onAddMoreButtonClicked()
@@ -1276,70 +1129,10 @@ void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list)
 //	return selected_id;
 }
 
-void LLPanelOutfitEdit::updateWearablesPanelVerbButtons()
-{
-	if(mWearablesListViewPanel->getVisible())
-	{
-		mFolderViewBtn->setToggleState(FALSE);
-		mFolderViewBtn->setImageOverlay(getString("folder_view_off"), mFolderViewBtn->getImageOverlayHAlign());
-		mListViewBtn->setImageOverlay(getString("list_view_on"), mListViewBtn->getImageOverlayHAlign());
-	}
-	else if(mInventoryItemsPanel->getVisible())
-	{
-		mListViewBtn->setToggleState(FALSE);
-		mListViewBtn->setImageOverlay(getString("list_view_off"), mListViewBtn->getImageOverlayHAlign());
-		mFolderViewBtn->setImageOverlay(getString("folder_view_on"), mFolderViewBtn->getImageOverlayHAlign());
-	}
-}
-
-void LLPanelOutfitEdit::saveListSelection()
-{
-	if(mWearablesListViewPanel->getVisible())
-	{
-		std::set<LLUUID> selected_ids = mInventoryItemsPanel->getRootFolder()->getSelectionList();
-
-		if(!selected_ids.size()) return;
-
-		mWearableItemsList->resetSelection();
-
-		for (std::set<LLUUID>::const_iterator item_id = selected_ids.begin(); item_id != selected_ids.end(); ++item_id)
-		{
-			mWearableItemsList->selectItemByUUID(*item_id, true);
-		}
-		mWearableItemsList->scrollToShowFirstSelectedItem();
-	}
-	else if(mInventoryItemsPanel->getVisible())
-	{
-		std::vector<LLUUID> selected_ids;
-		mWearableItemsList->getSelectedUUIDs(selected_ids);
-
-		if(!selected_ids.size()) return;
-
-		mInventoryItemsPanel->clearSelection();
-		LLFolderView* root = mInventoryItemsPanel->getRootFolder();
-
-		if(!root) return;
-
-		for(std::vector<LLUUID>::const_iterator item_id = selected_ids.begin(); item_id != selected_ids.end(); ++item_id)
-		{
-			LLFolderViewItem* item = root->getItemByID(*item_id);
-			if (!item) continue;
-
-			LLFolderViewFolder* parent = item->getParentFolder();
-			if(parent)
-			{
-				parent->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_UP);
-			}
-			mInventoryItemsPanel->getRootFolder()->changeSelection(item, TRUE);
-		}
-		mInventoryItemsPanel->getRootFolder()->scrollToShowSelection();
-	}
-
-}
-
 void LLPanelOutfitEdit::onCOFChanged()
 {
 	update();
 }
 
+
 // EOF
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index fa3c48c3e73deca63c1412ac71d35204b41e124f..13ceda98a6c562e1c9b7cc0bd7cb5e2e945a96b5 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -43,8 +43,8 @@
 #include "llremoteparcelrequest.h"
 #include "llinventory.h"
 #include "llinventoryfunctions.h"
+#include "llinventoryitemslist.h"
 #include "llinventorymodel.h"
-#include "llwearableitemslist.h"
 
 class LLButton;
 class LLCOFWearables;
@@ -141,12 +141,6 @@ class LLPanelOutfitEdit : public LLPanel
 	void showWearablesListView();
 	void showWearablesFolderView();
 
-	/**
-	 * Method preserves selection while switching between folder/list view modes
-	*/
-	void saveListSelection();
-
-	void updateWearablesPanelVerbButtons();
 	void updateFiltersVisibility();
 
 	void onFolderViewFilterCommitted(LLUICtrl* ctrl);
@@ -171,7 +165,7 @@ class LLPanelOutfitEdit : public LLPanel
 	void onRemoveFromOutfitClicked(void);
 	void onEditWearableClicked(void);
 	void onAddWearableClicked(void);
-	void onReplaceMenuItemClicked(LLUUID selected_item_id);
+	void onReplaceBodyPartMenuItemClicked(LLUUID selected_item_id);
 	void onShopButtonClicked();
 
 	void displayCurrentOutfit();
@@ -229,7 +223,7 @@ class LLPanelOutfitEdit : public LLPanel
 	LLComboBox*			mListViewFilterCmbBox;
 
 	LLFilteredWearableListManager* 	mWearableListManager;
-	LLWearableItemsList* 			mWearableItemsList;
+	LLInventoryItemsList* 			mWearableItemsList;
 	LLPanel*						mWearablesListViewPanel;
 	LLWearableItemTypeNameComparator* mWearableListViewItemsComparator;
 
@@ -240,7 +234,6 @@ class LLPanelOutfitEdit : public LLPanel
 
 	LLCOFWearables*		mCOFWearables;
 	LLMenuGL*			mGearMenu;
-	LLMenuGL*			mAddWearablesGearMenu;
 	bool				mInitialized;
 	std::auto_ptr<LLSaveOutfitComboBtn> mSaveComboBtn;
 
diff --git a/indra/newview/llwearableitemslist.cpp b/indra/newview/llwearableitemslist.cpp
index d9b2dfbec04f98d0821b58f1d3908acba52222bc..fe8c09e3290c47f32c221152198e0233d3416ee8 100644
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -572,10 +572,8 @@ bool LLWearableItemTypeNameComparator::sortAssetTypeByName(LLAssetType::EType it
 }
 
 bool LLWearableItemTypeNameComparator::sortWearableTypeByName(LLAssetType::EType item_type) const
-bool LLWearableItemCreationDateComparator::doCompare(const LLPanelInventoryListItemBase* item1, const LLPanelInventoryListItemBase* item2) const
 {
 	wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type);
-	time_t date2 = item2->getCreationDate();
 
 	if(const_it == mWearableOrder.end())
 	{
@@ -585,14 +583,11 @@ bool LLWearableItemCreationDateComparator::doCompare(const LLPanelInventoryListI
 
 	return const_it->second.mSortWearableTypeByName;
 }
-
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
 //////////////////////////////////////////////////////////////////////////
 
 static const LLWearableItemTypeNameComparator WEARABLE_TYPE_NAME_COMPARATOR;
-static const LLWearableItemNameComparator WEARABLE_NAME_COMPARATOR;
-static const LLWearableItemCreationDateComparator WEARABLE_CREATION_DATE_COMPARATOR;
 
 static const LLDefaultChildRegistry::Register<LLWearableItemsList> r("wearable_items_list");
 
@@ -604,7 +599,7 @@ LLWearableItemsList::Params::Params()
 LLWearableItemsList::LLWearableItemsList(const LLWearableItemsList::Params& p)
 :	LLInventoryItemsList(p)
 {
-	setSortOrder(E_SORT_BY_TYPE, false);
+	setComparator(&WEARABLE_TYPE_NAME_COMPARATOR);
 	mIsStandalone = p.standalone;
 	if (mIsStandalone)
 	{
@@ -704,32 +699,6 @@ void LLWearableItemsList::onRightClick(S32 x, S32 y)
 	ContextMenu::instance().show(this, selected_uuids, x, y);
 }
 
-void LLWearableItemsList::setSortOrder(ESortOrder sort_order, bool sort_now)
-{
-	switch (sort_order)
-	{
-	case E_SORT_BY_MOST_RECENT:
-		setComparator(&WEARABLE_CREATION_DATE_COMPARATOR);
-		break;
-	case E_SORT_BY_NAME:
-		setComparator(&WEARABLE_NAME_COMPARATOR);
-		break;
-	case E_SORT_BY_TYPE:
-		setComparator(&WEARABLE_TYPE_NAME_COMPARATOR);
-		break;
-
-	// No "default:" to raise compiler warning
-	// if we're not handling something
-	}
-
-	mSortOrder = sort_order;
-
-	if (sort_now)
-	{
-		sort();
-	}
-}
-
 //////////////////////////////////////////////////////////////////////////
 /// ContextMenu
 //////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index 84e999cd57bbef62b9b0c34bf0837b4c760325c9..f2f81968eebdafbebdfab7bd792daeb6f677d00e 100644
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
@@ -379,19 +379,6 @@ class LLWearableItemTypeNameComparator : public LLWearableItemNameComparator
 	wearable_type_order_map_t mWearableOrder;
 };
 
-/**
- * @class LLWearableItemCreationDateComparator
- *
- * Comparator for sorting wearable list items by creation date (newest go first).
- */
-class LLWearableItemCreationDateComparator : public LLWearableItemNameComparator
-{
-	LOG_CLASS(LLWearableItemCreationDateComparator);
-
-protected:
-	/*virtual*/ bool doCompare(const LLPanelInventoryListItemBase* item1, const LLPanelInventoryListItemBase* item2) const;
-};
-
 /**
  * @class LLWearableItemsList
  *
@@ -444,13 +431,6 @@ class LLWearableItemsList : public LLInventoryItemsList
 		Params();
 	};
 
-	typedef enum e_sort_order {
-		// Values should be compatible with InventorySortOrder setting.
-		E_SORT_BY_NAME			= 0,
-		E_SORT_BY_MOST_RECENT	= 1,
-		E_SORT_BY_TYPE			= 2,
-	} ESortOrder;
-
 	virtual ~LLWearableItemsList();
 
 	/*virtual*/ void addNewItem(LLViewerInventoryItem* item, bool rearrange = true);
@@ -465,10 +445,6 @@ class LLWearableItemsList : public LLInventoryItemsList
 
 	bool isStandalone() const { return mIsStandalone; }
 
-	ESortOrder getSortOrder() const { return mSortOrder; }
-
-	void setSortOrder(ESortOrder sort_order, bool sort_now = true);
-
 protected:
 	friend class LLUICtrlFactory;
 	LLWearableItemsList(const LLWearableItemsList::Params& p);
@@ -477,8 +453,6 @@ class LLWearableItemsList : public LLInventoryItemsList
 
 	bool mIsStandalone;
 	bool mWornIndicationEnabled;
-
-	ESortOrder		mSortOrder;
 };
 
 #endif //LL_LLWEARABLEITEMSLIST_H