public boolean addAll(Collection<? extends E> c) {
        if (c == null)
            throw new NullPointerException();
        if (c == this)
            throw new IllegalArgumentException();
        boolean modified = false;
        Iterator<? extends E> e = c.iterator();
        while (e.hasNext()) {
        	//patch line is the next one
        	if (!contains(e))
        		if (add(e.next()))
        			modified = true;
        }
        return modified;
	}