protected void cleanup(JComponent c, boolean remove) {
		if (!cleaned && remove && indices != null) {
			source = (JList) c;
			DefaultListModel model = (DefaultListModel) source.getModel();
			//If we are moving items around in the same list, we
			//need to adjust the indices accordingly, since those
			//after the insertion point have moved.
			if (addCount > 0) {
				for (int i = 0; i < indices.length; i++) {
					if (indices[i] > addIndex) {
						indices[i] += addCount;
					}
				}
			}
			for (int i = indices.length - 1; i >= 0; i--) {
				try {
					model.remove(indices[i]);
				} catch (ArrayIndexOutOfBoundsException ignored) {
				}
			}
		}
		indices = null;
		addCount = 0;
		addIndex = -1;
	}