diff --git a/indra/newview/llfloateravatar.cpp b/indra/newview/llfloateravatar.cpp
index 31adf5b61e23c86feef9f534dc203dcf61b46472..3203cf7816c18ac6277fcfa2d56b4518e7480ab5 100644
--- a/indra/newview/llfloateravatar.cpp
+++ b/indra/newview/llfloateravatar.cpp
@@ -36,6 +36,10 @@
 #include "lluictrlfactory.h"
 #include "llmediactrl.h"
 
+#include "llagent.h"
+#include "llviewercontrol.h"
+#include "llviewerregion.h"
+#include "llweb.h"
 
 LLFloaterAvatar::LLFloaterAvatar(const LLSD& key)
 	:	LLFloater(key)
@@ -56,6 +60,18 @@ LLFloaterAvatar::~LLFloaterAvatar()
 BOOL LLFloaterAvatar::postBuild()
 {
 	enableResizeCtrls(true, true, false);
+
+	LLMediaCtrl* avatar_picker = findChild<LLMediaCtrl>("avatar_picker_contents");
+	if (avatar_picker)
+	{
+		avatar_picker->setErrorPageURL(gSavedSettings.getString("GenericErrorPageURL"));
+		if (auto* regionp = gAgent.getRegion())
+		{
+			std::string ava_url = regionp->getAvatarPickerURL();
+			ava_url = LLWeb::expandURLSubstitutions(ava_url, LLSD());
+			avatar_picker->navigateTo(ava_url, HTTP_CONTENT_TEXT_HTML);
+		}
+	}
 	return TRUE;
 }