diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index ae4b288588e297d135f9f6849b8e350b1d411366..9e51aacecac107d9cb5f5a4569fbf441757fa1eb 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -36,6 +36,7 @@
 
 // *TODO: reorder includes to match the coding standard
 #include "llagent.h"
+#include "llagentcamera.h"
 #include "llagentwearables.h"
 #include "llappearancemgr.h"
 #include "llcofwearables.h"
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index 3719313c142e468a8db07393c5f1c20c5cb48e79..b66789448fca5667a840fa0f82d9b9d93427b375 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -163,6 +163,8 @@ BOOL LLSidepanelAppearance::postBuild()
 	mOutfitRenameWatcher = new LLWatchForOutfitRenameObserver(this);
 	gInventory.addObserver(mOutfitRenameWatcher);
 
+	setVisibleCallback(boost::bind(&LLSidepanelAppearance::onVisibilityChange,this,_2));
+
 	return TRUE;
 }
 
@@ -201,6 +203,27 @@ void LLSidepanelAppearance::onOpen(const LLSD& key)
 	mOpened = true;
 }
 
+void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility)
+{
+	if (new_visibility.asBoolean())
+	{
+		if ((mOutfitEdit && mOutfitEdit->getVisible()) || (mEditWearable && mEditWearable->getVisible()))
+		{
+			if (!gAgentCamera.cameraCustomizeAvatar())
+			{
+				gAgentCamera.changeCameraToCustomizeAvatar();
+			}
+		}
+	}
+	else
+	{
+		if (gAgentCamera.cameraCustomizeAvatar())
+		{
+			gAgentCamera.changeCameraToDefault();
+		}
+	}
+}
+
 void LLSidepanelAppearance::onFilterEdit(const std::string& search_string)
 {
 	if (mFilterSubString != search_string)
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 5bde962c8d2f6ed590512f687f7b7840099c6181..30022ae37535698a85af778b318bc147ffe4f2cb 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -72,6 +72,7 @@ class LLSidepanelAppearance : public LLPanel
 
 private:
 	void onFilterEdit(const std::string& search_string);
+	void onVisibilityChange ( const LLSD& new_visibility );
 
 	void onOpenOutfitButtonClicked();
 	void onEditAppearanceButtonClicked();