private ArrayList adjustContributionList(ArrayList contributionList) {
        IContributionItem item;
        // Fist remove a separator if it is the first element of the list
        if (contributionList.size() != 0) {
            item = (IContributionItem) contributionList.get(0);
            if (item.isSeparator()) {
                contributionList.remove(0);
            }

            ListIterator iterator = contributionList.listIterator();
            // collapse consecutive separators
            while (iterator.hasNext()) {
                item = (IContributionItem) iterator.next();
                if (item.isSeparator()) {
                    while (iterator.hasNext()) {
                        item = (IContributionItem) iterator.next();
                        if (item.isSeparator()) {
                            iterator.remove();
                        } else {
                            break;
                        }
                    }

                }
            }
            if (contributionList.size() != 0) {
	            // Now check last element to see if there is a separator
	            item = (IContributionItem) contributionList.get(contributionList
	                    .size() - 1);
	            if (item.isSeparator()) {
	                contributionList.remove(contributionList.size() - 1);
	            }
            }
        }
        return contributionList;

    }