The ListIterator has to correct the current index
position when removing some Element while iterating.
Otherwise it will skip the Element wich moves to the
same position as the removed element.
This should fix it:
function remove()
{
$this->_index = $this->_element;
array_splice($this->_values, $this->_element, 1);
}
Cheers