@Override
    public T next()
    {
        T current = next;

        while (iterator.hasNext())
        {
            next = iterator.next();
            
            if (next != skip)
            {
                break;
            }
        }
        
        if (!iterator.hasNext())
        {
            next = null;
        }
        
        return current;
    }