diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index e04d03c832a4e20ef0224d1a66c312b865edc372..73f50c5ce28632518194efbaf8f50bbea34e4450 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -11040,17 +11040,6 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
-	<key>GlobalShowIconsOverride</key>
-	<map>
-		<key>Comment</key>
-		<string>Show/hide people icons in any list. This option should be set back to 0 when icons are enabled locally for the lists</string>
-		<key>Persist</key>
-		<integer>1</integer>
-		<key>Type</key>
-		<string>Boolean</string>
-		<key>Value</key>
-		<integer>0</integer>
-	</map>
     <key>FriendsSortOrder</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index c7fa375ada10d6d56860230d0cb4d51ff3264e1d..8846d1317d1e173a469be467b3a4502c4e3ab7b7 100755
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -63,18 +63,16 @@ bool LLAvatarList::contains(const LLUUID& id)
 	return std::find(ids.begin(), ids.end(), id) != ids.end();
 }
 
-void LLAvatarList::setIconsVisible(bool visible)
+void LLAvatarList::toggleIcons()
 {
-	if (visible == mShowIcons) // nothing to be done here.
-		return;
-
 	// Save the new value for new items to use.
-	mShowIcons = visible;
-
+	mShowIcons = !mShowIcons;
+	gSavedSettings.setBOOL(mIconParamName, mShowIcons);
+	
 	// Show/hide icons for all existing items.
 	std::vector<LLPanel*> items;
 	getItems(items);
-	for (std::vector<LLPanel*>::const_iterator it = items.begin(); it != items.end(); it++)
+	for( std::vector<LLPanel*>::const_iterator it = items.begin(); it != items.end(); it++)
 	{
 		static_cast<LLAvatarListItem*>(*it)->setAvatarIconVisible(mShowIcons);
 	}
@@ -189,8 +187,6 @@ void LLAvatarList::draw()
 		updateAvatarNames();
 	}
 
-	setIconsVisible(gSavedSettings.getBOOL(mIconParamName) && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
-
 	if (mDirty)
 		refresh();
 
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 159ff991e6ad40fa872c19415e771a09915d514b..3542577ae3c3f7cfb89272fdf1968624c0bd576f 100755
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -76,7 +76,7 @@ class LLAvatarList : public LLFlatListViewEx
 	void setSessionID(const LLUUID& session_id) { mSessionID = session_id; }
 	const LLUUID& getSessionID() { return mSessionID; }
 
-	void setIconsVisible(bool visible);
+	void toggleIcons();
 	void setSpeakingIndicatorsVisible(bool visible);
 	void showPermissions(bool visible);
 	void sortByName();
diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp
index 3a6e4c4dfeac30a1d2ff16526975b7b55eb6d325..924a8d720679c57217011f0f2fe3f58e103fab66 100644
--- a/indra/newview/llconversationview.cpp
+++ b/indra/newview/llconversationview.cpp
@@ -503,7 +503,7 @@ void LLConversationViewSession::refresh()
 		}
 	}
 	
-	setIconsVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
+	setIconsVisible(gSavedSettings.getBOOL("ChatShowIcons"));
 	
 	requestArrange();
 	// Do the regular upstream refresh
@@ -572,7 +572,7 @@ void LLConversationViewParticipant::initFromParams(const LLConversationViewParti
 BOOL LLConversationViewParticipant::postBuild()
 {
     mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
-	mAvatarIcon->setVisible(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride"));
+	mAvatarIcon->setVisible(gSavedSettings.getBOOL("ChatShowIcons"));
 
 	mInfoBtn = getChild<LLButton>("info_btn");
 	mInfoBtn->setClickedCallback(boost::bind(&LLConversationViewParticipant::onInfoBtnClick, this));
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 91a0af3e8d370b57111bc90947b4dc62d9977083..fc87e5dc5a130e8b1b0ff2a3a9e91506398a884b 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -926,8 +926,7 @@ void LLFloaterIMContainer::onCustomAction(const LLSD& userdata)
 	}
 	if ("view_icons" == command)
 	{
-		gSavedSettings.setBOOL("ChatShowIcons", !(gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL("ChatShowIcons") && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
+		gSavedSettings.setBOOL("ChatShowIcons", !gSavedSettings.getBOOL("ChatShowIcons"));
 	}
 	if ("chat_preferences" == command)
 	{
@@ -981,7 +980,7 @@ BOOL LLFloaterIMContainer::isActionChecked(const LLSD& userdata)
 	}
 	if ("view_icons" == command)
 	{
-		return gSavedSettings.getBOOL("ChatShowIcons") && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
+		return gSavedSettings.getBOOL("ChatShowIcons");
 	}
 	if ("Translating.Enabled" == command)
 	{
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index e28f37ccb06bc75190dbb7f450c4cd8db57dd845..73b928f0142c3aca0921e6c2391b2b2b4d7f349b 100755
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -1331,12 +1331,8 @@ void LLPanelPeople::onFriendsViewSortMenuItemClicked(const LLSD& userdata)
 	}
 	else if (chosen_item == "view_icons")
 	{
-		std::string param = mAllFriendList->getIconParamName();
-		gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		gSavedSettings.setBOOL(mOnlineFriendList->getIconParamName(), gSavedSettings.getBOOL(param));
-		mAllFriendList->setIconsVisible(gSavedSettings.getBOOL(param));
-		mOnlineFriendList->setIconsVisible(gSavedSettings.getBOOL(param));
+		mAllFriendList->toggleIcons();
+		mOnlineFriendList->toggleIcons();
 	}
 	else if (chosen_item == "view_permissions")
 	{
@@ -1372,10 +1368,7 @@ void LLPanelPeople::onNearbyViewSortMenuItemClicked(const LLSD& userdata)
 	}
 	else if (chosen_item == "view_icons")
 	{
-		std::string param = mNearbyList->getIconParamName();
-		gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		mNearbyList->setIconsVisible(gSavedSettings.getBOOL(param));
+		mNearbyList->toggleIcons();
 	}
 	else if (chosen_item == "sort_distance")
 	{
@@ -1394,8 +1387,6 @@ bool LLPanelPeople::onNearbyViewSortMenuItemCheck(const LLSD& userdata)
 		return sort_order == E_SORT_BY_NAME;
 	if (item == "sort_distance")
 		return sort_order == E_SORT_BY_DISTANCE;
-	if (item == "view_icons")
-		return gSavedSettings.getBOOL(mNearbyList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
 
 	return false;
 }
@@ -1414,10 +1405,7 @@ void LLPanelPeople::onRecentViewSortMenuItemClicked(const LLSD& userdata)
 	}
 	else if (chosen_item == "view_icons")
 	{
-		std::string param = mRecentList->getIconParamName();
-		gSavedSettings.setBOOL(param, !(gSavedSettings.getBOOL(param) && !gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		gSavedSettings.setBOOL("GlobalShowIconsOverride", (!gSavedSettings.getBOOL(param) && gSavedSettings.getBOOL("GlobalShowIconsOverride")));
-		mRecentList->setIconsVisible(gSavedSettings.getBOOL(param));
+		mRecentList->toggleIcons();
 	}
 }
 
@@ -1430,8 +1418,6 @@ bool LLPanelPeople::onFriendsViewSortMenuItemCheck(const LLSD& userdata)
 		return sort_order == E_SORT_BY_NAME;
 	if (item == "sort_status")
 		return sort_order == E_SORT_BY_STATUS;
-	if (item == "view_icons")
-		return gSavedSettings.getBOOL(mAllFriendList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
 
 	return false;
 }
@@ -1445,8 +1431,6 @@ bool LLPanelPeople::onRecentViewSortMenuItemCheck(const LLSD& userdata)
 		return sort_order == E_SORT_BY_MOST_RECENT;
 	if (item == "sort_name") 
 		return sort_order == E_SORT_BY_NAME;
-	if (item == "view_icons")
-		return gSavedSettings.getBOOL(mRecentList->getIconParamName()) && !gSavedSettings.getBOOL("GlobalShowIconsOverride");
 
 	return false;
 }
diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
index 02c6cfc006bcace783c2e74c1d1db9d7f0a9a3f8..8790fde7c5574c05437cd4c736d8dcca1cf38c7c 100755
--- a/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_friends_view.xml
@@ -29,8 +29,8 @@
      function="People.Friends.ViewSort.Action"
      parameter="view_icons" />
     <menu_item_check.on_check
-     function="People.Friends.ViewSort.CheckItem"
-     parameter="view_icons" />
+     function="CheckControl"
+     parameter="FriendsListShowIcons" />
   </menu_item_check>
   <menu_item_check name="view_permissions" label="View Permissions Granted">
     <menu_item_check.on_click
diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
index 44b3d14e100770b56086ed62ba8e53e3b2881a5b..da88ca9f4d53ecd24f8591b8d0bef29cda153540 100755
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_view.xml
@@ -39,8 +39,8 @@
          function="People.Nearby.ViewSort.Action"
          parameter="view_icons" />
         <menu_item_check.on_check
-         function="People.Nearby.ViewSort.CheckItem"
-         parameter="view_icons"/>
+         function="CheckControl"
+         parameter="NearbyListShowIcons" />
     </menu_item_check>
     <menu_item_check name ="view_map" label="View Map">
         <menu_item_check.on_check
diff --git a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
index cd2260d0c40b4a45aeb76016e5aae83985f2f42c..1dbc90dd2be49550ea43950a61f88b9d08cbc923 100755
--- a/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_recent_view.xml
@@ -29,7 +29,7 @@
      function="People.Recent.ViewSort.Action"
      parameter="view_icons" />
     <menu_item_check.on_check
-     function="People.Recent.ViewSort.CheckItem"
-     parameter="view_icons" />
+     function="CheckControl"
+     parameter="RecentListShowIcons" />
   </menu_item_check>
 </toggleable_menu>
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
index a8be517f3cfd90396a075df71bc126d5d8b2e0c3..b201e071ef826aa2946d4271d3d233f1fa49abd5 100755
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -313,30 +313,4 @@
 		<button.commit_callback
 		  function="Pref.Proxy" />
   </button>
-  <text
-    type="string"
-    length="1"
-    follows="left|top"
-    height="10"
-    layout="topleft"
-    left="30"
-    name="People Icons:"
-    mouse_opaque="false"
-    top_pad="5"
-    width="300">
-		People Icons:
-  </text>
-  <check_box
-	top_delta="4"
-	enabled="true"
-	follows="left|top"
-	height="14"
-	initial_value="false"
-	control_name="GlobalShowIconsOverride"
-	label="Hide people icons (global override)"
-	left_delta="50"
-	mouse_opaque="true"
-	name="global_show_icons_override"
-	width="400"           
-	top_pad="10"/>
 </panel>