diff --git a/src/main/java/org/olat/group/ui/main/EditMembershipController.java b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
index 1bfbb839cbbfa86fe086faabde2619989f667ea1..dde0edb1896ac0c5231e485c6c46bba21ee3aa5b 100644
--- a/src/main/java/org/olat/group/ui/main/EditMembershipController.java
+++ b/src/main/java/org/olat/group/ui/main/EditMembershipController.java
@@ -34,6 +34,7 @@ import org.olat.core.gui.components.EscapeMode;
 import org.olat.core.gui.components.form.flexible.FormItem;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement;
+import org.olat.core.gui.components.form.flexible.elements.FormLink;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement;
 import org.olat.core.gui.components.form.flexible.elements.MultipleSelectionElement.Layout;
 import org.olat.core.gui.components.form.flexible.impl.Form;
@@ -50,6 +51,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTable
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableComponent;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableDataModelFactory;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.TextFlexiCellRenderer;
+import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
@@ -96,6 +98,9 @@ public class EditMembershipController extends FormBasicController {
 	private FlexiTableElement groupTableEl;
 	private FlexiTableElement curriculumTableEl;
 	private MultipleSelectionElement repoRightsEl;
+	private FormLink selectAllCurriculumOwnersButton;
+	private FormLink selectAllCurriculumCoachesButton;
+	private FormLink selectAllCurriculumParticipantsButton;
 	private EditGroupMembershipTableDataModel groupTableDataModel;
 	private EditCurriculumMembershipTableDataModel curriculumTableDataModel;
 	
@@ -389,6 +394,16 @@ public class EditMembershipController extends FormBasicController {
 		curriculumTableEl = uifactory.addTableElement(getWindowControl(), "curriculumList", curriculumTableDataModel, getTranslator(), formLayout);
 		curriculumTableEl.setCustomizeColumns(false);
 		curriculumTableEl.setNumOfRowsEnabled(false);
+		
+		selectAllCurriculumOwnersButton = uifactory.addFormLink("select.all.curriculum.owners", formLayout, Link.BUTTON_SMALL);
+		selectAllCurriculumOwnersButton.setIconLeftCSS("o_icon o_icon_check_on");
+		selectAllCurriculumOwnersButton.setUserObject(Boolean.TRUE);
+		selectAllCurriculumCoachesButton = uifactory.addFormLink("select.all.curriculum.coaches", formLayout, Link.BUTTON_SMALL);
+		selectAllCurriculumCoachesButton.setIconLeftCSS("o_icon o_icon_check_on");
+		selectAllCurriculumCoachesButton.setUserObject(Boolean.TRUE);
+		selectAllCurriculumParticipantsButton = uifactory.addFormLink("select.all.curriculum.participants", formLayout, Link.BUTTON_SMALL);
+		selectAllCurriculumParticipantsButton.setIconLeftCSS("o_icon o_icon_check_on");
+		selectAllCurriculumParticipantsButton.setUserObject(Boolean.TRUE);
 
 		if(withButtons) {
 			FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("buttonLayout", getTranslator());
@@ -446,9 +461,40 @@ public class EditMembershipController extends FormBasicController {
 					}
 				}
 			}
+		} else if(selectAllCurriculumOwnersButton == source) {
+			toogleCurriculumMembership(selectAllCurriculumOwnersButton, GroupRoles.owner,
+					"select.all.curriculum.owners", "deselect.all.curriculum.owners");
+		} else if(selectAllCurriculumCoachesButton == source) {
+			toogleCurriculumMembership(selectAllCurriculumCoachesButton, GroupRoles.coach,
+					"select.all.curriculum.coaches", "deselect.all.curriculum.coaches");
+		} else if(selectAllCurriculumParticipantsButton == source) {
+			toogleCurriculumMembership(selectAllCurriculumParticipantsButton, GroupRoles.participant,
+					"select.all.curriculum.participants", "deselect.all.curriculum.participants");
 		}
 		super.formInnerEvent(ureq, source, event);
 	}
+	
+	private void toogleCurriculumMembership(FormLink link, GroupRoles role, String selectI18nKey, String deselectI18nKey) {
+		Boolean enabled = (Boolean)link.getUserObject();
+		
+		List<MemberCurriculumOption> memberOptions = curriculumTableDataModel.getObjects();
+		for(MemberCurriculumOption memberOption:memberOptions) {
+			MultipleSelectionElement element = memberOption.getSelection(role);
+			if(element.isEnabled()) {
+				element.select(keys[0], enabled.booleanValue());
+			}
+		}
+		
+		boolean newValue = !enabled.booleanValue();
+		link.setUserObject(Boolean.valueOf(newValue));
+		if(newValue) {
+			link.setIconLeftCSS("o_icon o_icon_check_on");
+			link.setI18nKey(selectI18nKey);
+		} else {
+			link.setIconLeftCSS("o_icon o_icon_check_off");
+			link.setI18nKey(deselectI18nKey);
+		}
+	}
 
 	public void collectRepoChanges(MemberPermissionChangeEvent e) {
 		if(repoEntry == null) return;
@@ -541,7 +587,16 @@ public class EditMembershipController extends FormBasicController {
 
 		public void setParticipant(MultipleSelectionElement participant) {
 			this.participant = participant;
-		}	
+		}
+		
+		public MultipleSelectionElement getSelection(GroupRoles role) {
+			switch(role) {
+				case owner: return owner;
+				case coach: return coach;
+				case participant: return participant;
+				default: return null;
+			}
+		}
 	}
 
 	private static class MemberGroupOption {
diff --git a/src/main/java/org/olat/group/ui/main/_content/edit_member.html b/src/main/java/org/olat/group/ui/main/_content/edit_member.html
index b3473d896e136aec2b886a15fce5fc98c85bb8a9..e9d33bf8c0cb784fc0a2e4a02c6f59a664719eb8 100644
--- a/src/main/java/org/olat/group/ui/main/_content/edit_member.html
+++ b/src/main/java/org/olat/group/ui/main/_content/edit_member.html
@@ -14,6 +14,11 @@
 #if($r.visible("curriculumList"))
 	<fieldset>
 		<legend>$r.translate("edit.member.curriculums")</legend>
+		<div class="o_button_group o_button_group_right"><div class="btn-group">
+			$r.render("select.all.curriculum.owners")
+			$r.render("select.all.curriculum.coaches")
+			$r.render("select.all.curriculum.participants")
+		</div></div>
 		$r.render("curriculumList")
 	</fieldset>
 #end
diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties
index 32185fdb51d77c6c9a4de425ac14d60d4a2765cf..a13191dd59a3fdc4cb338384cf6c6b8583347c09 100644
--- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_de.properties
@@ -4,6 +4,9 @@ create.group=Gruppe erstellen
 create.group.description=Erzeugen Sie eine neue Gruppe mit der unten stehenden Schaltfl\u00E4che. Als Betreuer dieser Gruppe k\u00F6nnen Sie danach die Gruppenwerkzeuge freischalten, Benutzer hinzuf\u00FCgen oder die Gruppe ver\u00F6ffentlichen.
 confirm.leave=Entfernen
 copy.group=Kopieren
+deselect.all.curriculum.owners=In alle Elemente als Kursbesitzer austragen
+deselect.all.curriculum.coaches=In alle Elemente als Betreuer austragen
+deselect.all.curriculum.participants=In alle Elemente als Teilnehmer austragen
 deup.members=Mitglieder bereinigen
 dedup.members.typ=Rolle
 dedup.members.coaches=Betreuer
@@ -87,6 +90,9 @@ cif.coursetitle=Kurstitel
 cif.error.allempty=Bitte f\u00FCllen Sie mindestens ein Formularfeld aus.
 search.limit.type=Typ
 group.access.success=Zugriff auf Gruppe ist erfolgreich. 
+select.all.curriculum.owners=In alle Elemente als Kursbesitzer eintragen
+select.all.curriculum.coaches=In alle Elemente als Betreuer eintragen
+select.all.curriculum.participants=In alle Elemente als Teilnehmer eintragen
 table.header.ac=Aktion
 table.header.ac.method=Zugang
 table.header.bgname=Name
diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
index 6ee58f535df11c6683d299c2be69d213dc45fe41..173605186396c7d68d218666590fd0e23a589969 100644
--- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_en.properties
@@ -22,6 +22,9 @@ course.numOfVisits=Visits
 create.form.title=Create a new group
 create.group=Create group
 create.group.description=Create a new group with the button below. As coach of this group you may then unlock the group tools, add users or publish the group.
+deselect.all.curriculum.owners=Remove as course owner in all elements
+deselect.all.curriculum.coaches=Remove as coach in all elements
+deselect.all.curriculum.participants=Remove as participant in all elements
 dedup.members.coaches=Coach
 dedup.members.info1=Do you really want to purge all members?
 dedup.members.info2={0} members have been found that have both a course and a group memberships of this course. The group memberships will not be modified, access to the course remains unchanged.
@@ -129,6 +132,9 @@ search.resources=Linked with courses
 search.roles=Role
 search.waiting=Waiting list
 search.yes=yes
+select.all.curriculum.owners=Add as course owner in all elements
+select.all.curriculum.coaches=Add as coach in all elements
+select.all.curriculum.participants=Add as participant in all elements
 show=More information
 table.access=Book
 table.access.waitingList=Add to waiting list
diff --git a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties
index fdabadfb106ca5beeae3b4468aa666d1dd84a36b..a991449280d1621349c0bbc2700180c3140e9be0 100644
--- a/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/group/ui/main/_i18n/LocalStrings_fr.properties
@@ -29,6 +29,9 @@ dedup.members.info3={0} utilisateurs ont trouv\u00E9 qui sont \u00E0 la fois mem
 dedup.members.info4=S\u00E9lectionnez si la correction s'applique aux coaches et / ou aux participants.
 dedup.members.particpants=Participant
 dedup.members.typ=R\u00F4les
+deselect.all.curriculum.owners=Enlever partout le r\u00F4le propriƩtaire de cours
+deselect.all.curriculum.coaches=Enlever partout le r\u00F4le coach
+deselect.all.curriculum.participants=Enlever partout le r\u00F4le participant
 deup.members=Corriger les membres
 dialog.modal.bg.asktoleave.title=Demande pour quitter le groupe
 dialog.modal.bg.delete.text=Voulez-vous vraiment effacer le groupe de travail "{0}"?<p>
@@ -129,6 +132,9 @@ search.resources=Utilis\u00E9 dans un cours
 search.roles=R\u00F4le
 search.waiting=Liste d'attente
 search.yes=Oui
+select.all.curriculum.owners=Ajouter partout comme propriƩtaire de cours
+select.all.curriculum.coaches=Ajouter partout comme coach
+select.all.curriculum.participants=Ajouter partout comme participant
 show=Plus d'informations
 table.access=Souscrire
 table.access.waitingList=Souscrire \u00E0 la liste d'attente