diff --git a/indra/llui/llfolderview.cpp b/indra/llui/llfolderview.cpp
index f3da71fc1584a5c637a37f31e3b3ba24b5cfd75a..bf4d5ae1f904041b6b08029d6078da957112a877 100644
--- a/indra/llui/llfolderview.cpp
+++ b/indra/llui/llfolderview.cpp
@@ -325,19 +325,10 @@ void LLFolderView::filter( LLFolderViewFilter& filter )
 {
     // Entry point of inventory filtering (CHUI-849)
 	LLFastTimer t2(FTM_FILTER);
-	//filter.setFilterCount(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsPerFrame"), 1, 5000));
-    filter.resetTime(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsMaxTimePerFrame"), 1, 1000));
+    filter.resetTime(llclamp(LLUI::sSettingGroups["config"]->getS32(mParentPanel->getVisible() ? "FilterItemsMaxTimePerFrameVisible" : "FilterItemsMaxTimePerFrameUnvisible"), 1, 100));
+
     // Note: we filter the model, not the view
 	getViewModelItem()->filter(filter);
-    // Test the filter state
-    if (filter.isTimedOut())
-    {
-        llinfos << "Merov : filter of " << mParentPanel->getName() << " not finished, count = " << filter.getFilterCount() << llendl;
-    }
-    else if (filter.getFilterCount() != 0)
-    {
-        llinfos << "Merov : last filter of " << mParentPanel->getName() << " done! count = " << filter.getFilterCount() << llendl;
-    }
 }
 
 void LLFolderView::reshape(S32 width, S32 height, BOOL called_from_parent)
@@ -1622,9 +1613,8 @@ void LLFolderView::update()
 	// Filter to determine visibility before arranging
 	filter(getFolderViewModel()->getFilter());
     
-	// Clear the modified setting on the filter only if the filter count is non-zero after running the filter process
-	// Note: if the filter count is zero, that means the filter exhausted its count per frame and halted before completing the entire set of items
-	//if (getFolderViewModel()->getFilter().isModified() && (getFolderViewModel()->getFilter().getFilterCount() > 0))
+	// Clear the modified setting on the filter only if the filter finished after running the filter process
+	// Note: if the filter count has timed out, that means the filter halted before completing the entire set of items
     if (getFolderViewModel()->getFilter().isModified() && (!getFolderViewModel()->getFilter().isTimedOut()))
 	{
 		getFolderViewModel()->getFilter().clearModified();
diff --git a/indra/llui/llfolderviewmodel.cpp b/indra/llui/llfolderviewmodel.cpp
index b5622756fe3d32df9e5b420512d6ba31498068c1..3363dc531652b54c66fb332efea086d20f928450 100644
--- a/indra/llui/llfolderviewmodel.cpp
+++ b/indra/llui/llfolderviewmodel.cpp
@@ -48,8 +48,7 @@ std::string LLFolderViewModelCommon::getStatusText()
 
 void LLFolderViewModelCommon::filter()
 {
-	//getFilter().setFilterCount(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsPerFrame"), 1, 5000));
-    getFilter().resetTime(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsMaxTimePerFrame"), 1, 1000));
+    getFilter().resetTime(llclamp(LLUI::sSettingGroups["config"]->getS32("FilterItemsMaxTimePerFrameVisible"), 1, 100));
 	mFolderView->getViewModelItem()->filter(getFilter());
 }
 
diff --git a/indra/llui/llfolderviewmodel.h b/indra/llui/llfolderviewmodel.h
index 64c00c782e6618fcf9fcf480e4f259551005e852..b1bcc8bbb4912d877b48c7283ddc3c09d55bdb28 100644
--- a/indra/llui/llfolderviewmodel.h
+++ b/indra/llui/llfolderviewmodel.h
@@ -86,19 +86,11 @@ class LLFolderViewFilter
 	//RN: this is public to allow system to externally force a global refilter
 	virtual void 				setModified(EFilterModified behavior = FILTER_RESTART) = 0;
 
-	// +-------------------------------------------------------------------+
-	// + Count
-	// +-------------------------------------------------------------------+
-	virtual void 				setFilterCount(S32 count) = 0;
-	virtual S32 				getFilterCount() const = 0;
-	virtual void 				decrementFilterCount() = 0;
-
 	// +-------------------------------------------------------------------+
 	// + Time
 	// +-------------------------------------------------------------------+
 	virtual void 				resetTime(S32 timeout) = 0;
     virtual bool                isTimedOut() = 0;
-	virtual void 				incrementFilterCount() = 0; // Temp!
     
 	// +-------------------------------------------------------------------+
 	// + Default
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a28c6366c07e2583fbd43920c1a56b0e996de913..cd2b15ef2bb67c035240040ff97128a7331e6d20 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -3391,27 +3391,27 @@
         <key>Value</key>
             <real>10.0</real>
         </map>
-    <key>FilterItemsPerFrame</key>
+    <key>FilterItemsMaxTimePerFrameVisible</key>
     <map>
-      <key>Comment</key>
-      <string>Maximum number of inventory items to match against search filter every frame (lower to increase framerate while searching, higher to improve search speed)</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>S32</string>
-      <key>Value</key>
-      <integer>500</integer>
+        <key>Comment</key>
+        <string>Max time devoted to items filtering per frame for visible inventory listings (in milliseconds)</string>
+        <key>Persist</key>
+        <integer>1</integer>
+        <key>Type</key>
+        <string>S32</string>
+        <key>Value</key>
+        <integer>10</integer>
     </map>
-    <key>FilterItemsMaxTimePerFrame</key>
+    <key>FilterItemsMaxTimePerFrameUnvisible</key>
     <map>
         <key>Comment</key>
-        <string>Max time devoted to items filtering per frame (in milliseconds)</string>
+        <string>Max time devoted to items filtering per frame for non visible inventory listings (in milliseconds)</string>
         <key>Persist</key>
         <integer>1</integer>
         <key>Type</key>
         <string>S32</string>
         <key>Value</key>
-        <integer>100</integer>
+        <integer>1</integer>
     </map>
     <key>FindLandArea</key>
     <map>
diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h
index 5c942b1c40c45e118af7057d991bb3badbc54781..d8cdcdfc97f1bdef4c7cca48cdd8cd15f05574ff 100755
--- a/indra/newview/llconversationmodel.h
+++ b/indra/newview/llconversationmodel.h
@@ -252,14 +252,9 @@ class LLConversationFilter : public LLFolderViewFilter
 	const std::string& 	getName() const { return mEmpty; }
 	const std::string& 	getFilterText() { return mEmpty; }
 	void 				setModified(EFilterModified behavior = FILTER_RESTART) { }
-		
-	void 				setFilterCount(S32 count) { }
-	S32 				getFilterCount() const { return 0; }
-	void 				decrementFilterCount() { }
 
   	void 				resetTime(S32 timeout) { }
     bool                isTimedOut() { return false; }
-	void 				incrementFilterCount() { } // Temp!
    
 	bool 				isDefault() const { return true; }
 	bool 				isNotDefault() const { return false; }
diff --git a/indra/newview/llfolderviewmodelinventory.cpp b/indra/newview/llfolderviewmodelinventory.cpp
index ce957edcbd080ce5feb99d1d4de5f5de07abc964..4a51d266936335f89443a2fcc9dd5af6060ca126 100644
--- a/indra/newview/llfolderviewmodelinventory.cpp
+++ b/indra/newview/llfolderviewmodelinventory.cpp
@@ -191,6 +191,7 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
 		return true;
 	}
 
+    // *TODO : Revise the logic for fast pass on less restrictive filter case
     /*
      const S32 sufficient_pass_generation = filter.getFirstSuccessGeneration();
     if (getLastFilterGeneration() >= sufficient_pass_generation
@@ -218,7 +219,6 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
 		for (child_list_t::iterator iter = mChildren.begin(), end_iter = mChildren.end(); iter != end_iter; ++iter)
 		{
 			continue_filtering = filterChildItem((*iter), filter);
-            //if (filter.getFilterCount() <= 0)
             if (!continue_filtering)
 			{
 				break;
@@ -226,13 +226,10 @@ bool LLFolderViewModelItemInventory::filter( LLFolderViewFilter& filter)
 		}
 	}
 
-	// If we didn't use all filter iterations that means we filtered all of our descendants so filter ourselves now
-	//if (filter.getFilterCount() > 0)
+	// If we didn't use all the filter time that means we filtered all of our descendants so we can filter ourselves now
     if (continue_filtering)
 	{
-        // This is where filter count is hit and filter check on the item done (CHUI-849)
-		//filter.decrementFilterCount();
-		filter.incrementFilterCount(); // Temp
+        // This is where filter check on the item done (CHUI-849)
 		const bool passed_filter = filter.check(this);
 		setPassedFilter(passed_filter, filter_generation, filter.getStringMatchOffset(this), filter.getFilterStringSize());
         continue_filtering = !filter.isTimedOut();
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 3b712925e1ce1187a44224e8cbdb098529e89248..3c6974cf6d3a4eefbc5ba69cac47e50523ad1455 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -70,8 +70,7 @@ LLInventoryFilter::LLInventoryFilter(const Params& p)
 	mFilterSubString(p.substring),
 	mCurrentGeneration(0),
 	mFirstRequiredGeneration(0),
-	mFirstSuccessGeneration(0),
-	mFilterCount(0)
+	mFirstSuccessGeneration(0)
 {
 	// copy mFilterOps into mDefaultFilterOps
 	markDefault();
@@ -1012,25 +1011,6 @@ LLInventoryFilter::EFolderShow LLInventoryFilter::getShowFolderState() const
 	return mFilterOps.mShowFolderState; 
 }
 
-void LLInventoryFilter::setFilterCount(S32 count) 
-{ 
-	mFilterCount = count; 
-}
-S32 LLInventoryFilter::getFilterCount() const
-{
-	return mFilterCount;
-}
-
-void LLInventoryFilter::decrementFilterCount() 
-{ 
-	mFilterCount--; 
-}
-
-void LLInventoryFilter::incrementFilterCount()
-{
-	mFilterCount++;
-}
-
 bool LLInventoryFilter::isTimedOut()
 {
 	return mFilterTime.hasExpired();
@@ -1038,15 +1018,12 @@ bool LLInventoryFilter::isTimedOut()
 
 void LLInventoryFilter::resetTime(S32 timeout)
 {
-    mFilterCount = 0;
 	mFilterTime.reset();
     F32 time_in_sec = (F32)(timeout)/1000.0;
 	mFilterTime.setTimerExpirySec(time_in_sec);
 }
 
-
-
-S32 LLInventoryFilter::getCurrentGeneration() const 
+S32 LLInventoryFilter::getCurrentGeneration() const
 { 
 	return mCurrentGeneration;
 }
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index 034fcf4a6268f21b0a2e40698daa6d3a47956cca..ce516af0b93584d82e674042bda95b6cb8ae13be 100644
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
@@ -214,19 +214,11 @@ class LLInventoryFilter : public LLFolderViewFilter
 	//RN: this is public to allow system to externally force a global refilter
 	void 				setModified(EFilterModified behavior = FILTER_RESTART);
 
-	// +-------------------------------------------------------------------+
-	// + Count
-	// +-------------------------------------------------------------------+
-	void 				setFilterCount(S32 count);
-	S32 				getFilterCount() const;
-	void 				decrementFilterCount();
-
 	// +-------------------------------------------------------------------+
 	// + Time
 	// +-------------------------------------------------------------------+
 	void 				resetTime(S32 timeout);
     bool                isTimedOut();
-	void 				incrementFilterCount(); // Temp!
     
 	// +-------------------------------------------------------------------+
 	// + Default
@@ -275,9 +267,7 @@ class LLInventoryFilter : public LLFolderViewFilter
 	S32						mFirstRequiredGeneration;
 	S32						mFirstSuccessGeneration;
 
-	S32						mFilterCount;
 	EFilterModified 		mFilterModified;
-
 	LLTimer                 mFilterTime;
     
 	std::string 			mFilterText;