diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 27342712c6e84375d869587aee4317a1e5329da8..7bfca2834b8d40935ecdaaaaa9d67b3baa025caa 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4753,18 +4753,7 @@
       <string>Boolean</string>
       <key>Value</key>
       <integer>0</integer>
-    </map>
-    <key>InvisibleObjectsInMemoryTime</key>
-    <map>
-      <key>Comment</key>
-      <string>Number of frames invisible objects stay in memory before being removed. 0 means never to remove.</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>U32</string>
-      <key>Value</key>
-      <integer>64</integer>
-    </map>
+    </map>    
     <key>JoystickAvatarEnabled</key>
     <map>
       <key>Comment</key>
@@ -6581,6 +6570,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>NonvisibleObjectsInMemoryTime</key>
+    <map>
+      <key>Comment</key>
+      <string>Number of frames non-visible objects stay in memory before being removed. 0 means never to remove.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>U32</string>
+      <key>Value</key>
+      <integer>64</integer>
+    </map>
     <key>NoPreload</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 0466dea39deccdb4f6b04ae58a21fea4a59d92e8..f16f3507c3306bc272481f8362f1beb35088edba 100755
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
@@ -347,7 +347,7 @@ void LLVOCacheEntry::updateDebugSettings()
 	static LLCachedControl<F32> squared_back_angle(gSavedSettings,"BackProjectionAngleSquared");
 
 	//the number of frames invisible objects stay in memory
-	static LLCachedControl<U32> inv_obj_time(gSavedSettings,"InvisibleObjectsInMemoryTime");
+	static LLCachedControl<U32> inv_obj_time(gSavedSettings,"NonvisibleObjectsInMemoryTime");
 
 	sMinFrameRange = inv_obj_time - 1; //make 0 to be the maximum 
 
@@ -374,6 +374,11 @@ bool LLVOCacheEntry::isRecentlyVisible() const
 		vis = (rad * rad / mSceneContrib < sBackDistanceSquared);
 	}
 
+	if(!vis)
+	{
+		vis = (getVisible() + sMinFrameRange > LLViewerOctreeEntryData::getCurrentFrame());
+	}
+
 	return vis;
 }