diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 9f040928bab8fefd8a616825b314ef4c90fa7d3e..ad3d21626795d2275891443268ffdbcd007c5cb2 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -1312,6 +1312,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 	
 	@Override
 	public void deselectAll() {
+		component.setDirty(true);
 		multiSelectedIndex = null;
 	}
 
diff --git a/src/main/java/org/olat/core/util/mail/ContactList.java b/src/main/java/org/olat/core/util/mail/ContactList.java
index 3aec991115d4d3f05237b499e93c5070001def6a..252a394c0b64a86c8d0d8283e8148732dcd1051a 100644
--- a/src/main/java/org/olat/core/util/mail/ContactList.java
+++ b/src/main/java/org/olat/core/util/mail/ContactList.java
@@ -120,7 +120,6 @@ public class ContactList extends LogDelegator {
 	 */
 	public void add(Identity identity) {
 		String email = identity.getUser().getProperty(UserConstants.EMAIL, null);
-		//fxdiff VCRP-5
 		if (email == null) {
 			logError("No email available for identity::" + identity.getName() + " - can not add to contact list", null);
 			return;
@@ -130,7 +129,6 @@ public class ContactList extends LogDelegator {
 	
 	public void remove(Identity identity) {
 		String email = identity.getUser().getProperty(UserConstants.EMAIL, null);
-		//fxdiff VCRP-5
 		if (email == null) {
 			logError("No email available for identity::" + identity.getName() + " - can not remove from contact list", null);
 			return;
@@ -203,7 +201,6 @@ public class ContactList extends LogDelegator {
 	 * 
 	 * @return
 	 */
-	//fxdiff VCRP-16: intern mail system
 	public List<String> getEmailsAsStrings() {
 		List<String> ret = new ArrayList<String>(stringEmails.values());
 		/*
diff --git a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
index c73979c254cb6287ee9144b69b0a26808106d38a..62a0fc2c5022b9529b78d55e2b2520d7fc162857 100644
--- a/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
+++ b/src/main/java/org/olat/group/ui/main/AbstractBusinessGroupListController.java
@@ -145,7 +145,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 	private BGUserManagementController userManagementController;
 	private BGMailNotificationEditController userManagementSendMailController;
 	private BusinessGroupDeleteDialogBoxController deleteDialogBox;
-	private StepsMainRunController businessGroupWizard;
+	private StepsMainRunController emailWizard, businessGroupWizard;
 	protected BusinessGroupSearchController searchCtrl;
 	protected CloseableModalController cmc;
 
@@ -459,6 +459,15 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 					reloadModel();
 				}
 			}
+		} else if(source == emailWizard) {
+			if(event == Event.CANCELLED_EVENT || event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
+				getWindowControl().pop();
+				removeAsListenerAndDispose(emailWizard);
+				emailWizard = null;
+				if(event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
+					tableEl.deselectAll();
+				}
+			}
 		} else if (source == userManagementController) {
 			cmc.deactivate();
 			if(event == Event.DONE_EVENT) {
@@ -782,7 +791,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 	 * @param items
 	 */
 	private void doEmails(UserRequest ureq, List<? extends BusinessGroupRef> selectedItems) {
-		removeAsListenerAndDispose(businessGroupWizard);
+		removeAsListenerAndDispose(emailWizard);
 		if(selectedItems == null || selectedItems.isEmpty()) {
 			showWarning("error.select.one");
 			return;
@@ -799,9 +808,9 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 			}
 		};
 		
-		businessGroupWizard = new StepsMainRunController(ureq, getWindowControl(), start, finish, null, translate("email.group"), "o_sel_groups_email_wizard");
-		listenTo(businessGroupWizard);
-		getWindowControl().pushAsModalDialog(businessGroupWizard.getInitialComponent());
+		emailWizard = new StepsMainRunController(ureq, getWindowControl(), start, finish, null, translate("email.group"), "o_sel_groups_email_wizard");
+		listenTo(emailWizard);
+		getWindowControl().pushAsModalDialog(emailWizard.getInitialComponent());
 	}
 	
 	/**
@@ -1057,6 +1066,7 @@ public abstract class AbstractBusinessGroupListController extends FormBasicContr
 	protected abstract List<BGTableItem> searchTableItems(BusinessGroupQueryParams params);
 	
 	protected final int loadModel(BusinessGroupQueryParams params) {
+		this.lastSearchParams = params;
 		if(params == null) {
 			groupTableModel.setEntries(Collections.<BGTableItem>emptyList());
 			tableEl.reset();
diff --git a/src/main/java/org/olat/group/ui/wizard/BGEmailCompositionStepController.java b/src/main/java/org/olat/group/ui/wizard/BGEmailCompositionStepController.java
index 4e5e22e3ddf3038ef54a93ef68fafcf654dfac8e..3d2d1b3ba1a1ba14392e9c49b281f431847eb5c9 100644
--- a/src/main/java/org/olat/group/ui/wizard/BGEmailCompositionStepController.java
+++ b/src/main/java/org/olat/group/ui/wizard/BGEmailCompositionStepController.java
@@ -23,7 +23,6 @@ import java.io.File;
 import java.util.List;
 
 import org.olat.basesecurity.GroupRoles;
-import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
@@ -44,6 +43,7 @@ import org.olat.core.util.mail.MailerResult;
 import org.olat.group.BusinessGroup;
 import org.olat.group.BusinessGroupService;
 import org.olat.modules.co.ContactForm;
+import org.springframework.beans.factory.annotation.Autowired;
 
 /**
  * 
@@ -53,25 +53,36 @@ public class BGEmailCompositionStepController extends StepFormBasicController
 	
 	private ContactForm contactForm;
 	private final List<BusinessGroup> groups;
-	private final MailManager mailService;
-	private final BusinessGroupService businessGroupService;
+	
+	@Autowired
+	private MailManager mailService;
+	@Autowired
+	private BusinessGroupService businessGroupService;
 	
 	public BGEmailCompositionStepController(UserRequest ureq, WindowControl wControl, Form rootForm,
 			StepsRunContext runContext, List<BusinessGroup> groups) {
 		super(ureq, wControl, rootForm, runContext, LAYOUT_CUSTOM, "wrapper");
-		
-		mailService = CoreSpringFactory.getImpl(MailManager.class);
-		businessGroupService = CoreSpringFactory.getImpl(BusinessGroupService.class);
 		this.groups = groups;
-
 		initForm(ureq);
 	}
 	
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-
 		
-		ContactList contacts = new ContactList("mails");
+		StringBuilder groupNames = new StringBuilder();
+		for(int i=0; i<5 && i<groups.size(); i++) {
+			if(groupNames.length() > 0) groupNames.append(" - ");
+			groupNames.append(groups.get(i).getName());
+		}
+		
+		String contactsName;
+		if(groups.size() > 5) {
+			String otherGroups = Integer.toString(groups.size() - 5);
+			contactsName = translate("email.other.groups", new String[] { groupNames.toString(), otherGroups });
+		} else {
+			contactsName = groupNames.toString();
+		}
+		ContactList contacts = new ContactList(contactsName);
 		
 		Boolean sendToTutorObj = (Boolean)getFromRunContext("tutors");
 		boolean sendToTutors = sendToTutorObj == null ? false : sendToTutorObj.booleanValue();
diff --git a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_de.properties
index 1e7478b56ce1b6b0623fe134d9fc42e76202ca2f..c7de4831357990d02c498ce6dc94bfd69a253c0d 100644
--- a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_de.properties
@@ -65,6 +65,7 @@ email.write.description=Email schreiben
 email.select.receivers=E-Mail verschicken
 email.select.receiver.tutor=Betreuer
 email.select.receiver.participant=Teilnehmer
+email.other.groups={0} und {1} anderen Gruppen
 users.manage.title=Benutzer verwalten
 users.manage.desc=Benutzer verwalten
 users.email.title=Email versenden
diff --git a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_en.properties
index 8b7aedf48de01e5d846983805d59c4a659824bc8..6d3d751e6b6f8992279873624207b3395e7f69ff 100644
--- a/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/wizard/_i18n/LocalStrings_en.properties
@@ -34,6 +34,7 @@ copy.wizard.bgstep=Copy "{0}"
 create.form.error.emptylist=Please indicate at least one group name
 create.form.error.numberOrNull=Only figures, please\! (Or else leave blank)
 create.form.title.max=Intended number of <br>participants
+email.other.groups={0} and {1} other groups
 email.select.receiver.description=Recipient
 email.select.receiver.participant=Participants
 email.select.receiver.title=Recipient