 
             return -1;
         }
+		// List is sorted or filtered but refresh has not been called
+		else if (localIndex)
+		{
+			len = localIndex.length;
+			for (i = 0; i < len; i++)
+			{
+				if (localIndex[i] == item)
+					return i;
+			}
+			
+			return -1;
+		}
 
         // fallback
         return list.getItemIndex(item);

	 *  @playerversion AIR 1.1
	 *  @productversion Apache Flex 4.10
	 */
	public function removeItem( item:Object ):Boolean
	{
		return list.removeItem( item );
	}

    /**

        if (localIndex)
        {
            var loc:int = sourceLocation;
			var length:int = items.length;
			
            for (var i:int = 0; i < length; i++)
            {
                var item:Object = items[i];
				
                if (sort)
                {
                    loc = findItem(item, Sort.ANY_INDEX_MODE, true);
                    if (firstOne)
                    {
                        addLocation = loc;
                        firstOne = false;
                    }
                }
                else if (filterFunction != null && filterFunction(item))
                {
                    loc = getFilteredItemIndex(item);
                    if (firstOne)
                    {
                        addLocation = loc;
                        firstOne = false;
                    }
                }
				else
				// List is sorted or filtered but refresh has not been called
				// Just add to end of list
				{
					loc = localIndex.length;	
					addLocation = loc;
				}
					
				if (loc != -1)
				{
                    localIndex.splice(loc++, 0, item);
                    addedItems.push(item);
				}
             }
        }
	
		if (sort && sort.unique && sort.compareFunction(item, localIndex[loc]) == 0)
		{
			// We cause all adds to fail here, not just the one.
			var message:String = resourceManager.getString(
				"collections", "incorrectAddition");
			throw new CollectionViewError(message);
		}

        if (localIndex && addedItems.length > 1)
        {
