                     }
                     else {
                         parentOfChangingNodeIndex = parentStack.indexOf(parentOfChangingNode);
-                        isOurAncestorChanging = parentOfChangingNodeIndex != -1;
-                        if (isOurAncestorChanging)
+                        selectedAndChangingNodesHaveCommonAncestor = parentOfChangingNodeIndex != -1;
+                        if (selectedAndChangingNodesHaveCommonAncestor)
                         {
                             if (changingNodeAndSiblings != null)
                             {

        var parentStack:Array = getParentStack(current);
        var isBefore:Boolean = false;
        var parentOfChangingNodeIndex:int;
        var isOurAncestorChanging:Boolean;
        var bookmarkInChangingCollection:CursorBookmark;

        // remember the current parent

                if (isBefore)
                {
                    // if the removed node is before the current
                    // and they share parents then we have to
                    // adjust the currentChildIndex or
                    // the stack of child indexes.
                    parentOfChangingNode = collection.getParentItem(changingNode);
                    changingNodeAndSiblings = collection.getChildren(parentOfChangingNode);

                    if (parentOfChangingNode == parentOfCurrentNode)
                    {
                        if (changingNodeAndSiblings != null)
