diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 475f34dc2b2c1d5e4348814e25cc8eef85ce8ed6..f0742876e20ed82e03fb1c1f00e7bdaa6055ba77 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -49,6 +49,9 @@
 #include "llgesturemgr.h"
 #include "llappearancemgr.h"
 #include "lltexlayer.h"
+#include "llsidetray.h"
+#include "llpaneloutfitsinventory.h"
+#include "llfolderview.h"
 
 #include <boost/scoped_ptr.hpp>
 
@@ -1295,6 +1298,33 @@ void LLAgentWearables::makeNewOutfit(const std::string& new_folder_name,
 	} 
 }
 
+class LLAutoRenameFolder: public LLInventoryCallback
+{
+public:
+	LLAutoRenameFolder(LLUUID& folder_id):
+		mFolderID(folder_id)
+	{
+	}
+
+	virtual ~LLAutoRenameFolder()
+	{
+		LLSD key;
+		LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
+		LLPanelOutfitsInventory *outfit_panel =
+			dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
+		outfit_panel->getRootFolder()->clearSelection();
+		outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE);
+		outfit_panel->getRootFolder()->setNeedsAutoRename(TRUE);
+	}
+	
+	virtual void fire(const LLUUID&)
+	{
+	}
+	
+private:
+	LLUUID mFolderID;
+};
+
 LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
 {
 	if (mAvatarObject.isNull())
@@ -1309,17 +1339,9 @@ LLUUID LLAgentWearables::makeNewOutfitLinks(const std::string& new_folder_name)
 		LLFolderType::FT_OUTFIT,
 		new_folder_name);
 
-	LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, NULL);
+	LLPointer<LLInventoryCallback> cb = new LLAutoRenameFolder(folder_id);
+	LLAppearanceManager::instance().shallowCopyCategory(LLAppearanceManager::instance().getCOF(),folder_id, cb);
 	
-#if 0  // BAP - fix to go into rename state automatically after outfit is created.
-	LLViewerInventoryCategory *parent_category = gInventory.getCategory(parent_id);
-	if (parent_category)
-	{
-		parent_category->setSelectionByID(folder_id,TRUE);
-		parent_category->setNeedsAutoRename(TRUE);
-	}
-#endif
-
 	return folder_id;
 }
 
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 9421cf5716b5087ab4ab3834e399af9dd36e3f4c..fedc45b1fba6f4ca3d11142daef98ab4758ccfd0 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -2385,6 +2385,8 @@ void LLFolderBridge::folderOptionsMenu()
 	if (is_sidepanel)
 	{
 		mItems.clear();
+		mItems.push_back("Rename");
+		mItems.push_back("Delete");
 	}
 
 	// Only enable calling-card related options for non-default folders.
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 5af26c1ad9e992502d4826302c48f1c760503a7a..951e74abf9697b16c5f3bf4c49e737133ec37782 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -144,16 +144,13 @@ void LLPanelOutfitsInventory::onNew()
 {
 	const std::string& outfit_name = LLViewerFolderType::lookupNewCategoryName(LLFolderType::FT_OUTFIT);
 	LLUUID outfit_folder = gAgentWearables.makeNewOutfitLinks(outfit_name);
-
-	getRootFolder()->setSelectionByID(outfit_folder, TRUE);
-	getRootFolder()->setNeedsAutoRename(TRUE);
 }
 
 void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
 {
 	updateListCommands();
 	updateParent();
-	if (getRootFolder()->needsAutoRename())
+	if (getRootFolder()->needsAutoRename() && items.size())
 	{
 		getRootFolder()->startRenamingSelectedItem();
 		getRootFolder()->setNeedsAutoRename(FALSE);
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index 7769a7d172929920b5e2465fcbabac0cf30cb110..aa0ab4efbc5c7fa9900a922957d3befdb6838e1b 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -65,10 +65,12 @@ class LLPanelOutfitsInventory : public LLPanel
 	// Otherwise, return NULL.
 	LLFolderViewEventListener* getCorrectListenerForAction();
 	void setParent(LLSidepanelAppearance *parent);
+
+	LLFolderView* getRootFolder();
+
 protected:
 	void updateParent();
 	bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const;
-	LLFolderView* getRootFolder();
 
 private:
 	LLSidepanelAppearance*      mParent;