diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index 29f78f6290c5080115045f53b82cbafcd86b1183..ed15d9d9225655f5bb9d7ea13952dec88db9efcf 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -35,7 +35,7 @@
 #include "lldockablefloater.h"
 
 //static
-LLDockableFloater* LLDockableFloater::instance = NULL;
+LLHandle<LLFloater> LLDockableFloater::instanceHandle;
 
 LLDockableFloater::LLDockableFloater(LLDockControl* dockControl,
 		const LLSD& key, const Params& params) :
@@ -57,21 +57,21 @@ BOOL LLDockableFloater::postBuild()
 
 void LLDockableFloater::resetInstance()
 {
-	if (instance != this)
+	if (instanceHandle.get() != this)
 	{
-		if (instance != NULL && instance->isDocked())
+		if (instanceHandle.get() != NULL && instanceHandle.get()->isDocked())
 		{
 			//closeFloater() is not virtual
-			if (instance->canClose())
+			if (instanceHandle.get()->canClose())
 			{
-				instance->closeFloater();
+				instanceHandle.get()->closeFloater();
 			}
 			else
 			{
-				instance->setVisible(FALSE);
+				instanceHandle.get()->setVisible(FALSE);
 			}
 		}
-		instance = this;
+		instanceHandle = getHandle();
 	}
 }
 
diff --git a/indra/llui/lldockablefloater.h b/indra/llui/lldockablefloater.h
index b977888803ef614d3abcf080754dfb8ffa3027e5..1d0e89cef547524c8f20a2c365504b6047d8fdde 100644
--- a/indra/llui/lldockablefloater.h
+++ b/indra/llui/lldockablefloater.h
@@ -69,7 +69,7 @@ class LLDockableFloater : public LLFloater
 private:
 	std::auto_ptr<LLDockControl> mDockControl;
 	LLUIImagePtr mDockTongue;
-	static LLDockableFloater* instance;
+	static LLHandle<LLFloater> instanceHandle;
 };
 
 #endif /* LL_DOCKABLEFLOATER_H */
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index c027b59c71dd75908cb07e29d6cc4546758456ec..228e23b67ebe6dc5500002fe95baeec3cfdeec51 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1491,7 +1491,8 @@ LLFloater* LLFloater::getClosableFloaterFromFocus()
 
 	// The focused floater may not be closable,
 	// Find and close a parental floater that is closeable, if any.
-	for(LLFloater* floater_to_close = focused_floater; 
+	LLFloater* prev_floater = NULL;
+	for(LLFloater* floater_to_close = focused_floater;
 		NULL != floater_to_close; 
 		floater_to_close = gFloaterView->getParentFloater(floater_to_close))
 	{
@@ -1499,6 +1500,14 @@ LLFloater* LLFloater::getClosableFloaterFromFocus()
 		{
 			return floater_to_close;
 		}
+
+		// If floater has as parent root view
+		// gFloaterView->getParentFloater(floater_to_close) returns
+		// the same floater_to_close, so we need to check this.
+		if (prev_floater == floater_to_close) {
+			break;
+		}
+		prev_floater = floater_to_close;
 	}
 
 	return NULL;
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index ba383a8deeb797f75b1ef7a8bc1d8799b4d57d5b..e0b7aeb77e3bb91be013bab9d1360dfeb35f1cd9 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -556,8 +556,6 @@ BOOL LLPanelAvatarMeProfile::postBuild()
 	childSetCommitCallback("status_combo", boost::bind(&LLPanelAvatarMeProfile::onStatusChanged, this), NULL);
 	childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelAvatarMeProfile::onStatusMessageChanged, this), NULL);
 
-	childSetTextArg("partner_edit_link", "[URL]", getString("partner_edit_link_url"));
-
 	resetControls();
 	resetData();
 
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index bde6d1cf6c5caf67c590b89da612e66d82e27fe5..9ae58d1cb66077a8998b2e879c0f0f7bcbe2a1d3 100644
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
@@ -134,11 +134,13 @@ BOOL LLPanelPick::postBuild()
 		childSetAction("teleport_btn", boost::bind(&LLPanelPick::onClickTeleport, this));
 		childSetAction("show_on_map_btn", boost::bind(&LLPanelPick::onClickMap, this));
 
-		if (!mBackCb.empty())
-		{
-			LLButton* button = findChild<LLButton>("back_btn");
-			if (button) button->setClickedCallback(mBackCb);
-		}
+	}
+
+	// EXT-822. We have to process "Back" button click in both Edit & View Modes
+	if (!mBackCb.empty())
+	{
+		LLButton* button = findChild<LLButton>("back_btn");
+		if (button) button->setClickedCallback(mBackCb);
 	}
 
 	return TRUE;
@@ -435,11 +437,8 @@ void LLPanelPick::updateButtons()
 void LLPanelPick::setExitCallback(commit_callback_t cb)
 {
 	mBackCb = cb;
-	if (!mEditMode)
-	{
-		LLButton* button = findChild<LLButton>("back_btn");
-		if (button) button->setClickedCallback(mBackCb);
-	}
+	LLButton* button = findChild<LLButton>("back_btn");
+	if (button) button->setClickedCallback(mBackCb);
 }
 
 //static
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index e5a417e3d07d3787370951ed4d0a3fea5487205d..0af42bfc745f21a0fadcf0c11c76890a254fa45b 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -219,6 +219,7 @@
          name="groups_panel"
          width="285">
             <group_list
+             draw_heading="false"
              follows="left|top|right|bottom"
              height="357"
              layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index 41de34fbed4a5a1ff765ee30e6aab8fa3eb9bee9..580855e115de133116ab2a8d9d79ce0fc36688c6 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -20,10 +20,6 @@
     <string
      name="my_account_link_url"
      value="http://secondlife.com/account" />
-    <string
-     name="partner_edit_link_url">
-        http://www.secondlife.com/account/partners.php?lang=en
-    </string>
     <string
      name="no_partner_text"
      value="None" />
@@ -217,15 +213,6 @@
          top_pad="15"
          value="Partner:"
          width="100" />
-        <text
-         follows="left|top"
-         height="15"
-         layout="topleft"
-         left_pad="10"
-         name="partner_edit_link"
-         top_delta="0"
-         value="[[URL] Edit]"
-         width="100" />
         <panel
          follows="left|top|right"
          height="15"