diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 6078620e87e8f75c225ab01d2f79dc83d51dae82..a439720dcf134337476b687e22f55044d61539bd 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -299,6 +299,10 @@ void LLAgentWearables::addWearableToAgentInventoryCallback::fire(const LLUUID& i
 	{
 		gAgentWearables.makeNewOutfitDone(mType, mIndex);
 	}
+	if (mTodo & CALL_WEARITEM)
+	{
+		LLAppearanceManager::instance().addCOFItemLink(inv_item, true);
+	}
 }
 
 void LLAgentWearables::addWearabletoAgentInventoryDone(const S32 type,
@@ -510,7 +514,7 @@ void LLAgentWearables::saveWearableAs(const EWearableType type,
 			type,
 			index,
 			new_wearable,
-			addWearableToAgentInventoryCallback::CALL_UPDATE);
+			addWearableToAgentInventoryCallback::CALL_WEARITEM);
 	LLUUID category_id;
 	if (save_in_lost_and_found)
 	{
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index b4f58674af3aff31d8f6ef64a9d6580d6470f17c..858540a5f5904447de31453b6b9a12f8854558bf 100644
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -244,7 +244,8 @@ class LLAgentWearables
 			CALL_UPDATE = 1,
 			CALL_RECOVERDONE = 2,
 			CALL_CREATESTANDARDDONE = 4,
-			CALL_MAKENEWOUTFITDONE = 8
+			CALL_MAKENEWOUTFITDONE = 8,
+			CALL_WEARITEM = 16
 		};
 
 		// MULTI-WEARABLE: index is an EWearableType - more confusing usage.