diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index b78cb01d8546dd741465621bfc3dd93abec21e12..c2c93bbb8068aa1645956bc0bd862d8ec0c0551d 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8202,17 +8202,6 @@
       <key>Value</key>
       <integer>1</integer>
     </map>
-  <key>RenderAvatarComplexityLimit</key>
-    <map>
-      <key>Comment</key>
-      <string>Max visual complexity of avatars in a scene</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>S32</string>
-      <key>Value</key>
-      <integer>-1</integer>
-    </map>
   <key>RenderComplexityColorMin</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 532bb325ea87d1c85a54c0947e6f968820b06bab..44fbceed14aedf85929808e6499f777d6d161dd7 100755
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -780,7 +780,7 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
 		    LLSceneMonitor::getInstance()->freezeAvatar((LLCharacter*)this);
 	}
 
-	mCachedVisualMute = !isSelf();
+	mCachedVisualMute = !isSelf(); // default to muting everyone? hmmm....
 	mCachedVisualMuteUpdateTime = LLFrameTimer::getTotalSeconds() + 5.0;
 	mVisuallyMuteSetting = VISUAL_MUTE_NOT_SET;
 
@@ -2534,7 +2534,7 @@ void LLVOAvatar::idleUpdateLoadingEffect()
 																 LLPartData::LL_PART_EMISSIVE_MASK | // LLPartData::LL_PART_FOLLOW_SRC_MASK |
 																 LLPartData::LL_PART_TARGET_POS_MASK );
 			
-			if (!isTooComplex()) // do not generate particles for overly-complex avatars
+			if (!isVisuallyMuted()) // if we are muting the avatar, don't render particles
 			{
 				setParticleSource(particle_parameters, getID());
 			}
@@ -3088,10 +3088,7 @@ bool LLVOAvatar::isVisuallyMuted()
 	// * own avatar is never visually muted
 	// * if on the "always draw normally" list, draw them normally
 	// * if on the "always visually mute" list, mute them
-	// * draw them normally if they meet the following criteria:
-	//       - within the closest N avatars 
-	//       - AND aren't over the thresholds
-	// * otherwise visually mute all other avatars
+	// * check against the render cost and attachment limits
 	if (!isSelf())
 	{
 			static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit", 0);
@@ -6052,8 +6049,9 @@ BOOL LLVOAvatar::getIsCloud() const
 		return TRUE;
 	}
 
-	if (isTooComplex())
+	if (isVisuallyMuted())
 	{
+		// we can render the muted representation
 		return TRUE;
 	}
 	return FALSE;
@@ -6305,16 +6303,6 @@ BOOL LLVOAvatar::isFullyLoaded() const
 	return (mRenderUnloadedAvatar || mFullyLoaded);
 }
 
-bool LLVOAvatar::isTooComplex() const
-{
-	if (gSavedSettings.getS32("RenderAvatarComplexityLimit") > 0 && mVisualComplexity >= gSavedSettings.getS32("RenderAvatarComplexityLimit"))
-	{
-		return true;
-	}
-
-	return false;
-}
-
 
 //-----------------------------------------------------------------------------
 // findMotion()
@@ -7935,7 +7923,7 @@ void LLVOAvatar::idleUpdateRenderCost()
 		if ( !mText )
 		{
 			initDebugTextHud();
-			mText->setFadeDistance(15.0, 5.0); // limit clutter in large crowds
+			mText->setFadeDistance(20.0, 5.0); // limit clutter in large crowds
 		}
 		else
 		{
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index f2c1b349056ba438234232252ab6a819f22839ee..2921a3a3f9d4807ed6b41458b185e7ea45432b4a 100755
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -297,7 +297,6 @@ class LLVOAvatar :
 	//--------------------------------------------------------------------
 public:
 	BOOL			isFullyLoaded() const;
-	bool			isTooComplex() const;
 	bool 			visualParamWeightsAreDefault();
 	virtual BOOL	getIsCloud() const;
 	BOOL			isFullyTextured() const;