diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 38fa3bd1534d0390bc2f0787df506c743c134978..25f1fb8c139ccce10d053ffdcb2a501e99fecc26 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -103,6 +103,8 @@
 const S32 TERRAIN_TEXTURE_COUNT = 4;
 const S32 CORNER_COUNT = 4;
 
+const U32 MAX_LISTED_NAMES = 100;
+
 #define TMP_DISABLE_WLES // STORM-1180
 
 ///----------------------------------------------------------------------------
@@ -3828,12 +3830,11 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
 	}
 
 	std::string names;
-	bool single = true;
-
+	U32 listed_names = 0;
 	LLSD::array_const_iterator end_it = notification["payload"]["allowed_ids"].endArray();
 	for (LLSD::array_const_iterator iter = notification["payload"]["allowed_ids"].beginArray();
-		iter != end_it;
-		iter++)
+		 iter != end_it;
+		 iter++)
 	{
 		if (iter + 1 != end_it)
 		{
@@ -3851,28 +3852,32 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
 			LLNotificationsUtil::add("OwnerCanNotBeDenied");
 			break;
 		}
-		
+
 		sendEstateAccessDelta(flags, id);
 
 		if ((flags & (ESTATE_ACCESS_ALLOWED_GROUP_ADD | ESTATE_ACCESS_ALLOWED_GROUP_REMOVE)) == 0)
 		{
 			// fill the name list for confirmation
-			LLAvatarName av_name;
-			if (LLAvatarNameCache::get(id, &av_name))
+			if (listed_names < MAX_LISTED_NAMES)
 			{
-				if (!names.empty())
+				LLAvatarName av_name;
+				if (LLAvatarNameCache::get(id, &av_name))
 				{
-					names += ", ";
-					single = false;
-				}
-				names += av_name.getCompleteName();
+					if (!names.empty())
+					{
+						names += ", ";
+					}
+					names += av_name.getCompleteName();
+				}				
 			}
+			listed_names++;
 		}
 	}
-	LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
-	if (panel)
+	if (listed_names > MAX_LISTED_NAMES)
 	{
-		panel->setPendingUpdate(true);
+		LLSD args;
+		args["EXTRA_COUNT"] = llformat("%d", listed_names - MAX_LISTED_NAMES);
+		names += " " + LLTrans::getString("AndNMore", args);
 	}
 
 	if (!names.empty()) // show the conirmation
@@ -3902,6 +3907,7 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
 			args["ESTATE"] = LLTrans::getString("RegionInfoThisEstate");
 		}
 
+		bool single = (listed_names == 1);
 		if (flags & (ESTATE_ACCESS_ALLOWED_AGENT_ADD | ESTATE_ACCESS_BANNED_AGENT_ADD))
 		{
 			LLNotificationsUtil::add(single ? "AgentWasAddedToList" : "AgentsWereAddedToList", args);
@@ -3912,6 +3918,12 @@ bool LLPanelEstateAccess::accessCoreConfirm(const LLSD& notification, const LLSD
 		}		
 	}
 
+	LLPanelEstateAccess* panel = LLFloaterRegionInfo::getPanelAccess();
+	if (panel)
+	{
+		panel->setPendingUpdate(true);
+	}
+
 	return false;
 }
 
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index fd2749bb81a15245d0e23e0dcafb9ad7639a0412..d4327b0c7cc527341a4f7855e1cbb9a7fe98d6b3 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2661,6 +2661,7 @@ If you continue to receive this message, please contact Second Life support for
 	<string name="RegionInfoAllEstates">all estates</string>
 	<string name="RegionInfoManagedEstates">managed estates</string>
 	<string name="RegionInfoThisEstate">this estate</string>
+	<string name="AndNMore">and [EXTRA_COUNT] more</string>
 
 	<!-- script limits floater -->
 	<string name="ScriptLimitsParcelScriptMemory">Parcel Script Memory</string>