         public function test_findAny_finds_sealed_class_instance_via_anonymous_object_with_subset_of_properties():void
         {
             //given
-            const ID_TO_FIND:int = 1;
-            _utils.openAllNodes(_collectionView);
-
-            //when
-            var found:Boolean = _sut.findAny({department:DEPARTMENT_SALES, idInDepartment:ID_TO_FIND});
+            const ID_TO_FIND:int = NO_EMPLOYEES_PER_DEPARTMENT;
+            _utils.openAllNodes(_collectionView);
+
+            //when
+            var found:Boolean = _sut.findAny({department:DEPARTMENT_SALES, uniqueID:ID_TO_FIND});
 
             //then
             assertTrue(found);
             var currentEmployee:EmployeeVO = _sut.current as EmployeeVO;
             assertNotNull(currentEmployee);
             assertEquals(DEPARTMENT_SALES, currentEmployee.department);
-            assertEquals(ID_TO_FIND, currentEmployee.idInDepartment);
+            assertEquals(ID_TO_FIND, currentEmployee.uniqueID);
         }
 
         [Test]
         public function test_findLast_finds_sealed_class_instance_via_anonymous_object_with_subset_of_properties():void
         {
             //given
-            const ID_TO_FIND:int = 1;
-            _utils.openAllNodes(_collectionView);
-
-            //when
-            var found:Boolean = _sut.findLast({department:DEPARTMENT_DEVELOPMENT, idInDepartment:ID_TO_FIND});
+            const ID_TO_FIND:int = 0;
+            _utils.openAllNodes(_collectionView);
+
+            //when
+            var found:Boolean = _sut.findLast({department:DEPARTMENT_DEVELOPMENT, uniqueID:ID_TO_FIND});
 
             //then
             assertTrue(found);
             var currentEmployee:EmployeeVO = _sut.current as EmployeeVO;
             assertNotNull(currentEmployee);
             assertEquals(DEPARTMENT_DEVELOPMENT, currentEmployee.department);
-            assertEquals(ID_TO_FIND, currentEmployee.idInDepartment);
+            assertEquals(ID_TO_FIND, currentEmployee.uniqueID);
+        }
+
+        [Test]
+        public function test_findLast_finds_different_object_to_findFirst_via_anonymous_object_with_subset_of_properties():void
+        {
+            //given
+            _utils.openAllNodes(_collectionView);
+
+            var secondEmployee:EmployeeVO = _employeesByID[1] as EmployeeVO;
+            var secondToLastEmployee:EmployeeVO = _employeesByID[NO_EMPLOYEES - 2] as EmployeeVO;
+
+            const sameName:String = "John";
+
+            //when
+            secondEmployee.name = sameName;
+            secondToLastEmployee.name = sameName;
+
+            var foundFromBeginning:Boolean = _sut.findAny({name:sameName});
+
+            //then
+            assertTrue(foundFromBeginning);
+            assertEquals(secondEmployee, _sut.current);
+
+            //when
+            var foundFromEnd:Boolean = _sut.findLast({name:sameName});
+
+            //then
+            assertTrue(foundFromEnd);
+            assertEquals(secondToLastEmployee, _sut.current);
         }
 
         private static function createHierarchicalCollectionView(groupingCollection:GroupingCollection2):HierarchicalCollectionView

{
    public var name:String;
    public var department:String;
    public var idInDepartment:int;

    public function EmployeeVO(name:String, department:String, idInDepartment:int)
    {
        this.name = name;
        this.department = department;
        this.idInDepartment = idInDepartment;
    }
}
        private static function createEmployees():ArrayCollection
        {
            var result:ArrayCollection = new ArrayCollection();
            for (var i:int = 0; i < NO_EMPLOYEES_PER_DEPARTMENT * 2; i++)
            {
                result.addItem(createEmployee("Emp-" + i, (i < NO_EMPLOYEES_PER_DEPARTMENT ? DEPARTMENT_DEVELOPMENT : DEPARTMENT_SALES), i));
            }

            return result;
        }

        private static function createEmployee(name:String, department:String, uniqueID:int):EmployeeVO
        {
            var employeeVO:EmployeeVO = new EmployeeVO(name, department, uniqueID);
            _employeesByID[employeeVO.uniqueID] = employeeVO;
            return employeeVO;
        }

        private static function createGroupingCollection(source:ArrayCollection):GroupingCollection2
