                 if (isBefore)
                 {
                     // if the removed node is before the current
-                    // and they share parent's then we have to
+                    // 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)

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

                if (isBefore)
                {
                    // if the added 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)
