diff --git a/doc/contributions.txt b/doc/contributions.txt
index b253a7662d4fad9af742c9fcb4d1335bcf123691..5114aa53ddc14707efdc506422dae40cc8a2f0a4 100644
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -103,6 +103,7 @@ Ales Beaumont
 Alexandrea Fride
     STORM-255
 	STORM-960
+	STORM-1459
 Alissa Sabre
 	VWR-81
 	VWR-83
diff --git a/indra/newview/llpanelwearing.cpp b/indra/newview/llpanelwearing.cpp
index e0109675a64cc630c3e1a98682b77626a8ece828..c2f39524c46138821803471142ea52c6facd127e 100644
--- a/indra/newview/llpanelwearing.cpp
+++ b/indra/newview/llpanelwearing.cpp
@@ -60,6 +60,7 @@ class LLWearingGearMenu
 
 		registrar.add("Gear.Edit", boost::bind(&edit_outfit));
 		registrar.add("Gear.TakeOff", boost::bind(&LLWearingGearMenu::onTakeOff, this));
+		registrar.add("Gear.Copy", boost::bind(&LLPanelWearing::copyToClipboard, mPanelWearing));
 
 		enable_registrar.add("Gear.OnEnable", boost::bind(&LLPanelWearing::isActionEnabled, mPanelWearing, _2));
 
@@ -184,7 +185,6 @@ BOOL LLPanelWearing::postBuild()
 {
 	mCOFItemsList = getChild<LLWearableItemsList>("cof_items_list");
 	mCOFItemsList->setRightMouseDownCallback(boost::bind(&LLPanelWearing::onWearableItemsListRightClick, this, _1, _2, _3));
-	childSetAction("copy_to_clipboard", boost::bind(&LLPanelWearing::copyToClipboard, this));
 
 	LLMenuButton* menu_gear_btn = getChild<LLMenuButton>("options_gear_btn");
 
@@ -286,24 +286,22 @@ void LLPanelWearing::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const
 void LLPanelWearing::copyToClipboard()
 {
 	std::string text;
-	bool need_cr = false;
 	std::vector<LLSD> data;
 	mCOFItemsList->getValues(data);
-	for(std::vector<LLSD>::iterator iter = data.begin(); iter != data.end(); iter++)
+
+	for(std::vector<LLSD>::const_iterator iter = data.begin(); iter != data.end();)
 	{
 		LLSD uuid = (*iter);
 		LLViewerInventoryItem* item = gInventory.getItem(uuid);
-		if (!need_cr)
-		{
-			text += item->getName();
-			need_cr = true;
-		}
-		else
+
+		iter++;
+		if (item != NULL)
 		{
-			text += "\n" + item->getName();
+			// Append a CR to all but the last line
+			text += iter != data.end() ? item->getName() + "\n" : item->getName();
 		}
 	}
+
 	gClipboard.copyFromString(utf8str_to_wstring(text));
 }
-
 // EOF
diff --git a/indra/newview/llpanelwearing.h b/indra/newview/llpanelwearing.h
index 4c9f5ed079841e297c28622c768a83cf1b0b34fb..9a212b3cca92c2feafd0e644c1ba1f44c5794e7c 100644
--- a/indra/newview/llpanelwearing.h
+++ b/indra/newview/llpanelwearing.h
@@ -60,13 +60,14 @@ class LLPanelWearing : public LLPanelAppearanceTab
 
 	/*virtual*/ void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const;
 
+	/*virtual*/ void copyToClipboard();
+
 	boost::signals2::connection setSelectionChangeCallback(commit_callback_t cb);
 
 	bool hasItemSelected();
 
 private:
 	void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
-	void copyToClipboard();
 
 	LLInventoryCategoriesObserver* 	mCategoriesObserver;
 	LLWearableItemsList* 			mCOFItemsList;
diff --git a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
index 0ac2c14253500db711a98e9ccf4186ebe2285a3e..0e858ccf107f34dda72b12467fe1b86587d7cd84 100644
--- a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
@@ -20,4 +20,11 @@
          function="Gear.OnEnable"
          parameter="take_off" />
     </menu_item_call>
+    <menu_item_call
+     label="Copy outfit list to clipboard"
+     layout="topleft"
+     name="copy">
+        <on_click
+         function="Gear.Copy" />
+    </menu_item_call>
 </toggleable_menu>
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
index eef499184cb25d8646e8a1c573f4e78178a43dd7..d85b778db2174ab3f0a7a8cdd59e4c1203998355 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
@@ -42,15 +42,6 @@
          tool_tip="Show additional options"
          top="1"
          width="31" />
-        <button
-         follows="bottom|left|right"
-         height="25"
-         layout="topleft"
-         left_pad="1"
-         name="copy_to_clipboard"
-         label="Send to clipboard"
-         tool_tip="Send current outfit names to clipboard"
-         width="150" />
         <icon
          follows="bottom|left|right"
          height="25"
@@ -58,6 +49,6 @@
          layout="topleft"
          left_pad="1"
          name="dummy_icon"
-         width="123" />
+         width="274" />
     </panel>
 </panel>