diff --git a/src/main/java/org/olat/commons/memberlist/ui/MembersMailController.java b/src/main/java/org/olat/commons/memberlist/ui/MembersMailController.java
index 31ff0ef6ddeab72884286d12e160ae72631a06d1..b61bf7547f416d6401062f1118bcfedc1a58e069 100644
--- a/src/main/java/org/olat/commons/memberlist/ui/MembersMailController.java
+++ b/src/main/java/org/olat/commons/memberlist/ui/MembersMailController.java
@@ -231,7 +231,7 @@ public class MembersMailController extends FormBasicController {
 	
 	@Override
 	protected boolean validateFormLogic(UserRequest ureq) {
-		boolean allOk = true;
+		boolean allOk = super.validateFormLogic(ureq);
 		
 		subjectEl.clearError();
 		if(!StringHelper.containsNonWhitespace(subjectEl.getValue())) {
@@ -245,6 +245,16 @@ public class MembersMailController extends FormBasicController {
 			allOk &= false;
 		}
 		
+		allOk &= validateRecipients();
+		
+		return allOk;
+	}
+	
+	private boolean validateRecipients() {
+		boolean allOk = true;
+		
+		boolean atLeastOne = false;
+		
 		externalAddressesEl.clearError();
 		if(externalEl != null && externalEl.isAtLeastSelected(1)) {
 			String value = externalAddressesEl.getValue();
@@ -257,6 +267,7 @@ public class MembersMailController extends FormBasicController {
 						errors.append(email);
 					}
 				}
+				atLeastOne |= true;
 			}
 			
 			if(errors.length() > 0) {
@@ -265,7 +276,46 @@ public class MembersMailController extends FormBasicController {
 			}
 		}
 		
-		return allOk & super.validateFormLogic(ureq);
+		
+		if(ownerEl != null) ownerEl.clearError();
+		if(coachEl != null) coachEl.clearError();
+		if(participantEl != null) participantEl.clearError();
+		if(waitingEl != null) waitingEl.clearError();
+		if(individualEl != null) individualEl.clearError();
+		
+		if((ownerEl != null && ownerEl.isAtLeastSelected(1))
+				|| (coachEl != null && coachEl.isAtLeastSelected(1))
+				|| (participantEl != null && participantEl.isAtLeastSelected(1))
+				|| (waitingEl != null && waitingEl.isAtLeastSelected(1))) {
+			atLeastOne |= true;
+		}
+		
+		//check if there is an individual email
+		if(!atLeastOne && individualEl != null && individualEl.isAtLeastSelected(1) && !selectedMembers.isEmpty()) {
+			atLeastOne |= true;
+		}
+		
+		if(!atLeastOne) {
+			if(externalEl != null && externalEl.isAtLeastSelected(1) && !StringHelper.containsNonWhitespace(externalAddressesEl.getValue())) {
+				externalEl.setErrorKey("at.least.one.recipient", null);
+			} else if(individualEl != null && individualEl.isAtLeastSelected(1) && selectedMembers.isEmpty()) {
+				individualEl.setErrorKey("at.least.one.recipient", null);
+			} else if(ownerEl != null && !ownerEl.isAtLeastSelected(1)) {
+				ownerEl.setErrorKey("at.least.one.recipient", null);
+			} else if(coachEl != null && !coachEl.isAtLeastSelected(1)) {
+				coachEl.setErrorKey("at.least.one.recipient", null);
+			} else if(participantEl != null && !participantEl.isAtLeastSelected(1)) {
+				participantEl.setErrorKey("at.least.one.recipient", null);
+			} else if(waitingEl != null && !waitingEl.isAtLeastSelected(1)) {
+				waitingEl.setErrorKey("at.least.one.recipient", null);
+			} else if (individualEl != null && !individualEl.isAtLeastSelected(1)) {
+				individualEl.setErrorKey("at.least.one.recipient", null);
+			} else if (externalEl != null && !externalEl.isAtLeastSelected(1)) {
+				individualEl.setErrorKey("at.least.one.recipient", null);
+			}
+		}
+		
+		return allOk && atLeastOne;
 	}
 	
 	private File[] getAttachments() {
diff --git a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_de.properties
index 8e34b8f8185c310274fa3843e1926696df107c04..bf53fee27e9a43a82686da2928e3385dc7b737c2 100644
--- a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_de.properties
@@ -1,5 +1,5 @@
 #Mon Mar 02 09:54:04 CET 2009
-
+at.least.one.recipient=Sie m\u00FCssen mindesten ein Empf\u00E4nger w\u00E4hlen.
 
 
 
diff --git a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
index 60837ade1aa1a9fc703a9440774485523200e2f2..9cd14621658ea6111218d620407741e38ce9ef53 100644
--- a/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/core/util/mail/_i18n/LocalStrings_en.properties
@@ -1,5 +1,6 @@
 #Tue Nov 15 09:58:15 CET 2016
 add.email=Add
+at.least.one.recipient=You need to choose at least one recipient.
 contact.cp.from=Copy sent to addresser
 error.too.long=the template is too big. The maximal size is {0}\!
 footer.no.userdata=<p>This message has been sent automatically via the learning platform OpenOLAT\: {0}</p>
diff --git a/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java b/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java
index 495108c8ef9e68e4205a2f2a3d08cd88d35a8493..6fdfc7e3187e5d016c1273ccfb5f9c2f109f9311 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/AccessRightsEditController.java
@@ -368,6 +368,10 @@ public class AccessRightsEditController extends FormBasicController {
 						page.setReviewer();
 					}
 				}
+				
+				for(PortfolioElementAccessRightsRow page:pages) {
+					page.recalculate();
+				}
 			}
 		}
 	}