diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index f28e02c66e6f45636175f8cbdbf616b6b331fb54..378c4358b351f48418f76cca2da29cd139fce0e6 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -367,15 +367,15 @@ class LLChatHistoryHeader: public LLPanel
 		user_name->setValue( LLSD(av_name.mDisplayName ) );
 		user_name->setToolTip( av_name.mUsername );
 
-		if (gSavedSettings.getBOOL("NameTagShowUsernames"))
-		{
-		LLStyle::Params style_params_name;
-		LLColor4 userNameColor = LLUIColorTable::instance().getColor("EmphasisColor");
-		style_params_name.color(userNameColor);
-		style_params_name.font.name("SansSerifSmall");
-		style_params_name.font.style("NORMAL");
-		style_params_name.readonly_color(userNameColor);
-		user_name->appendText("  - " + av_name.mUsername, FALSE, style_params_name);
+		if (gSavedSettings.getBOOL("NameTagShowUsernames") && LLAvatarNameCache::useDisplayNames())
+		{
+			LLStyle::Params style_params_name;
+			LLColor4 userNameColor = LLUIColorTable::instance().getColor("EmphasisColor");
+			style_params_name.color(userNameColor);
+			style_params_name.font.name("SansSerifSmall");
+			style_params_name.font.style("NORMAL");
+			style_params_name.readonly_color(userNameColor);
+			user_name->appendText("  - " + av_name.mUsername, FALSE, style_params_name);
 		}
 		setToolTip( av_name.mUsername );
 		// name might have changed, update width
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index 9a13d0068572e947c52f70cd493c7731312e2638..f587923269c029b14a93f24b5c46a30d1c7be2d3 100644
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -176,6 +176,8 @@ LLPanelMyProfileEdit::LLPanelMyProfileEdit()
 	buildFromFile( "panel_edit_profile.xml");
 
 	setAvatarId(gAgent.getID());
+
+	LLAvatarNameCache::addUseDisplayNamesCallback(boost::bind(&LLPanelMyProfileEdit::onAvatarNameChanged, this));
 }
 
 void LLPanelMyProfileEdit::onOpen(const LLSD& key)
@@ -186,11 +188,6 @@ void LLPanelMyProfileEdit::onOpen(const LLSD& key)
 	// is loaded.
 	enableEditing(false);
 
-	// Only allow changing name if this region/grid supports it
-	bool use_display_names = LLAvatarNameCache::useDisplayNames();
-	LLUICtrl* set_name = getChild<LLUICtrl>("set_name");
-	set_name->setVisible(use_display_names);
-	set_name->setEnabled(use_display_names);
 	// force new avatar name fetch so we have latest update time
 	LLAvatarNameCache::fetch(gAgent.getID()); 
 	LLPanelMyProfile::onOpen(getAvatarId());
@@ -207,6 +204,23 @@ void LLPanelMyProfileEdit::onOpen(const LLSD& key)
 			LLFirstUse::setDisplayName(false);
 		}
 	}
+
+	if (LLAvatarNameCache::useDisplayNames())
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( true );
+		getChild<LLUICtrl>("user_slid")->setVisible( true );
+		getChild<LLUICtrl>("display_name_label")->setVisible( true );
+		getChild<LLUICtrl>("set_name")->setVisible( true );
+		getChild<LLUICtrl>("set_name")->setEnabled( true );
+	}
+	else
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( false );
+		getChild<LLUICtrl>("user_slid")->setVisible( false );
+		getChild<LLUICtrl>("display_name_label")->setVisible( false );
+		getChild<LLUICtrl>("set_name")->setVisible( false );
+		getChild<LLUICtrl>("set_name")->setEnabled( false );
+	}
 }
 
 void LLPanelMyProfileEdit::onClose(const LLSD& key)
@@ -267,10 +281,27 @@ void LLPanelMyProfileEdit::onNameCache(const LLUUID& agent_id, const LLAvatarNam
 	{
 		getChild<LLUICtrl>("user_name_small")->setVisible( false );
 		getChild<LLUICtrl>("user_name")->setVisible( true );
+	}
 
+	if (LLAvatarNameCache::useDisplayNames())
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( true );
+		getChild<LLUICtrl>("user_slid")->setVisible( true );
+		getChild<LLUICtrl>("display_name_label")->setVisible( true );
+		getChild<LLUICtrl>("set_name")->setVisible( true );
+		getChild<LLUICtrl>("set_name")->setEnabled( true );
+	}
+	else
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( false );
+		getChild<LLUICtrl>("user_slid")->setVisible( false );
+		getChild<LLUICtrl>("display_name_label")->setVisible( false );
+		getChild<LLUICtrl>("set_name")->setVisible( false );
+		getChild<LLUICtrl>("set_name")->setEnabled( false );
 	}
 }
 
+
 void LLPanelMyProfileEdit::onAvatarNameChanged()
 {
 	LLAvatarNameCache::get(getAvatarId(),
diff --git a/indra/newview/llpanelprofileview.cpp b/indra/newview/llpanelprofileview.cpp
index 2c4270090cdfda73b7746a44b9c7739953cb6da3..9011583a609a863abd49a8256b3ab7f5a11c6519 100644
--- a/indra/newview/llpanelprofileview.cpp
+++ b/indra/newview/llpanelprofileview.cpp
@@ -225,6 +225,22 @@ void LLPanelProfileView::onAvatarNameCache(const LLUUID& agent_id,
 
 	}
 
+	if (LLAvatarNameCache::useDisplayNames())
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( true );
+		getChild<LLUICtrl>("user_slid")->setVisible( true );
+		getChild<LLUICtrl>("display_name_label")->setVisible( true );
+		getChild<LLUICtrl>("copy_to_clipboard")->setVisible( true );
+		getChild<LLUICtrl>("copy_to_clipboard")->setEnabled( true );
+	}
+	else
+	{
+		getChild<LLUICtrl>("user_label")->setVisible( false );
+		getChild<LLUICtrl>("user_slid")->setVisible( false );
+		getChild<LLUICtrl>("display_name_label")->setVisible( false );
+		getChild<LLUICtrl>("copy_to_clipboard")->setVisible( false );
+		getChild<LLUICtrl>("copy_to_clipboard")->setEnabled( false );
+	}
 }
 
 // EOF
diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
index d216bd9b2e88de946d90ac488575bf37919f1c11..70c7bae66286c90e67db0fb544c15c1b5c30b92a 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -93,7 +93,7 @@
      height="13"
      layout="topleft"
      left="10"
-     name="user_label"
+     name="display_name_label"
      text_color="LtGray"
      value="Display Name:"
      width="80" />
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
index 406ec775a5b5256e09889f39c4c29b4a1f069b0c..dc5173867b86f6caff5629d4092df6d96dfd06a7 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -34,7 +34,7 @@
    height="13"
    layout="topleft"
    left="45"
-   name="user_label"
+   name="display_name_label"
    text_color="LtGray"
    value="Display Name:"
    width="80" />