 				_filtersInValid = false;	
 				if(_filtersEnabled){
 					filteredKeys = [];
+					filterContainsAllKeys = true;
 					columnFilterFunctions = getAllFilterFunctions();
 					collection.filterFunction = callAllFilterFunctions;
 					//refresh call the respective function(**callAllFilterFunctions**) through internalrefresh in listCollectionView 
-					collection.refresh();				
-					selectedKeySet.replaceKeys(filteredKeys);
+					collection.refresh();
+					if (filterContainsAllKeys)
+						selectedKeySet.clearKeys();
+					else
+						selectedKeySet.replaceKeys(filteredKeys);
 					filteredKeys = null;
 				}				
 				else{					
 					collection.filterFunction = filterKeys;
 					collection.refresh();
-					selectedKeySet.replaceKeys([]);
+					selectedKeySet.clearKeys();
 				}
 			}			
 		}

		// contains keys filtered by filterfunctions in each WeaveCustomDataGridColumn
		private var filteredKeys:Array;		
		private var columnFilterFunctions:Array;
		
		/**
		 * This function is a logical AND of each WeaveCustomDataGridColumn filter function

		{
			for each (var cff:Function in columnFilterFunctions)
				if (!cff(key))
					return filterContainsAllKeys = false;
			if (filteredKeys)
				filteredKeys.push(key);
			return true;
