diff --git a/indra/newview/lloutfitgallery.cpp b/indra/newview/lloutfitgallery.cpp
index 31e89c0ed020c223b11e31d9c46472d39daee3a2..5518656f3f802379cbc6c0b8ded0c151decedd4a 100644
--- a/indra/newview/lloutfitgallery.cpp
+++ b/indra/newview/lloutfitgallery.cpp
@@ -344,7 +344,7 @@ void LLOutfitGallery::removeFromLastRow(LLOutfitGalleryItem* item)
     mItemPanels.pop_back();
 }
 
-LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name)
+LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name, LLUUID outfit_id)
 {
     LLOutfitGalleryItem::Params giparams;
     LLOutfitGalleryItem* gitem = LLUICtrlFactory::create<LLOutfitGalleryItem>(giparams);
@@ -353,6 +353,7 @@ LLOutfitGalleryItem* LLOutfitGallery::buildGalleryItem(std::string name)
     gitem->setFollowsLeft();
     gitem->setFollowsTop();
     gitem->setOutfitName(name);
+    gitem->setUUID(outfit_id);
     return gitem;
 }
 
@@ -511,7 +512,7 @@ void LLOutfitGallery::updateAddedCategory(LLUUID cat_id)
     if (!cat) return;
 
     std::string name = cat->getName();
-    LLOutfitGalleryItem* item = buildGalleryItem(name);
+    LLOutfitGalleryItem* item = buildGalleryItem(name, cat_id);
     mOutfitMap.insert(LLOutfitGallery::outfit_map_value_t(cat_id, item));
     item->setRightMouseDownCallback(boost::bind(&LLOutfitListBase::outfitRightClickCallBack, this,
         _1, _2, _3, cat_id));
@@ -661,7 +662,8 @@ LLOutfitGalleryItem::LLOutfitGalleryItem(const Params& p)
     mSelected(false),
     mWorn(false),
     mDefaultImage(true),
-    mOutfitName("")
+    mOutfitName(""),
+    mUUID(LLUUID())
 {
     buildFromFile("panel_outfit_gallery_item.xml");
 }
@@ -745,23 +747,20 @@ BOOL LLOutfitGalleryItem::handleRightMouseDown(S32 x, S32 y, MASK mask)
     return LLUICtrl::handleRightMouseDown(x, y, mask);
 }
 
-BOOL LLOutfitGallery::handleDoubleClick(S32 x, S32 y, MASK mask)
+BOOL LLOutfitGalleryItem::handleDoubleClick(S32 x, S32 y, MASK mask)
 {
     LLTabContainer* appearence_tabs = LLPanelOutfitsInventory::findInstance()->getChild<LLTabContainer>("appearance_tabs");
-    LLPanel* panel = NULL;
-    LLAccordionCtrl* accordion = NULL;
-    if (appearence_tabs != NULL)
+    if (appearence_tabs && (mUUID != LLUUID()))
     {
         appearence_tabs->selectTabByName("outfitslist_tab");
-        panel = appearence_tabs->getCurrentPanel();
-        if (panel != NULL)
+        LLPanel* panel = appearence_tabs->getCurrentPanel();
+        if (panel)
         {
-            accordion = panel->getChild<LLAccordionCtrl>("outfits_accordion");
+            LLAccordionCtrl* accordion = panel->getChild<LLAccordionCtrl>("outfits_accordion");
             LLOutfitsList* outfit_list = dynamic_cast<LLOutfitsList*>(panel);
             if (accordion != NULL && outfit_list != NULL)
             {
-                LLUUID item_id = getSelectedOutfitUUID();
-                outfit_list->setSelectedOutfitByUUID(item_id);
+                outfit_list->setSelectedOutfitByUUID(mUUID);
                 LLAccordionCtrlTab* tab = accordion->getSelectedTab();
                 tab->showAndFocusHeader();
                 return TRUE;
@@ -769,7 +768,7 @@ BOOL LLOutfitGallery::handleDoubleClick(S32 x, S32 y, MASK mask)
         }
     }
 
-	return LLUICtrl::handleDoubleClick(x, y, mask);
+    return LLPanel::handleDoubleClick(x, y, mask);
 }
 
 void LLOutfitGalleryItem::setImageAssetId(LLUUID image_asset_id)
diff --git a/indra/newview/lloutfitgallery.h b/indra/newview/lloutfitgallery.h
index 37e75f110950bb3250d1688f40f298bff48942db..25662470729ba766af150ce95d0d6560cea4373e 100644
--- a/indra/newview/lloutfitgallery.h
+++ b/indra/newview/lloutfitgallery.h
@@ -115,8 +115,6 @@ class LLOutfitGallery : public LLOutfitListBase
     void onBeforeOutfitSnapshotSave();
     void onAfterOutfitSnapshotSave();
 
-    /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
-
 protected:
     /*virtual*/ void onHighlightBaseOutfit(LLUUID base_id, LLUUID prev_id);
     /*virtual*/ void onSetSelectedOutfitByUUID(const LLUUID& outfit_uuid);
@@ -150,7 +148,7 @@ class LLOutfitGallery : public LLOutfitListBase
     void updateRowsIfNeeded();
     void updateGalleryWidth();
 
-    LLOutfitGalleryItem* buildGalleryItem(std::string name);
+    LLOutfitGalleryItem* buildGalleryItem(std::string name, LLUUID outfit_id);
 
     void onTextureSelectionChanged(LLInventoryItem* itemp);
 
@@ -258,6 +256,7 @@ class LLOutfitGalleryItem : public LLPanel
     /*virtual*/ void draw();
     /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
     /*virtual*/ BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
+    /*virtual*/ BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
 
     void setDefaultImage();
     void setImageAssetId(LLUUID asset_id);
@@ -265,6 +264,7 @@ class LLOutfitGalleryItem : public LLPanel
     void setOutfitName(std::string name);
     void setOutfitWorn(bool value);
     void setSelected(bool value);
+    void setUUID(LLUUID outfit_id) {mUUID = outfit_id;}
     
     std::string getItemName() {return mOutfitName;}
     bool isDefaultImage() {return mDefaultImage;}
@@ -274,6 +274,7 @@ class LLOutfitGalleryItem : public LLPanel
     
 private:
     LLPointer<LLViewerFetchedTexture> mTexturep;
+    LLUUID mUUID;
     LLUUID mImageAssetId;
     LLTextBox* mOutfitNameText;
     LLTextBox* mOutfitWornText;