diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
index c30b8501dc160f40bf36ad59b1d0a761861385c5..468519223d99a2bd5265af538d897f249ab88d3c 100644
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_de.properties
@@ -29,7 +29,7 @@ course.link=Kurs \u00F6ffnen
 create.certificate=Zertifikate erzeugen
 confirm.certificate.title=Zertifikate erzeugen
 confirm.certificate.description=Neue Zertifikate für diese Benutzer erzeugen: {0}
-confirm.certificate.description.warning=Sie wollen Zertifikate für diese Personnen erzeugen: {0}. Aber die Rezertifikation Period von diese Peronen ist noch nicht abgelaufen: {1}. Wollen Sie die Zertifikate trotzdem erzeugen?
+confirm.certificate.description.warning=Sie wollen Zertifikate für diese Personen erzeugen: {0 Für folgende Personen ist die Re-Zertifizierungswartezeit noch nicht abgelaufen: {1}. Wollen Sie die Zertifikate trotzdem erzeugen?
 group=Gruppe\:
 group.link=Gruppe \u00F6ffnen
 date=Datum\:
diff --git a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
index ed96aaa0ec9ac0029a7d10c6b28866765949a39d..15c02c0bd478380e06738a8cd49a5bf5fb94f86f 100644
--- a/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Tue Dec 16 09:01:48 CET 2014
+#Wed Dec 17 15:43:14 CET 2014
 action.choose=Select 
 artefact.title=Evidence of achievement for course {0}
 assessment.testresults.finished=<font color\="green">Assessment completed</font>
@@ -26,9 +26,13 @@ command.closeassessment=Close
 command.hidelog=Hide log file
 command.showlog=Show log file
 command.start.bulkwizard=Start bulk assessment
+confirm.certificate.description=Create new certificates for the following users\: {0}
+confirm.certificate.description.warning=You are trying to create new certificates for the following users\: {0}. The re-certification period has not yet expired for the following users\: {1}. Do you wish to proceed anyway?
+confirm.certificate.title=Create certificates
 contact.link=Contact
 course=Course\:
 course.link=Open course
+create.certificate=Create certificate
 date=Date\:
 detailview.title=Detailed view of assessment
 efficiencyStatements.cannot.delete=You cannot delete the evidence of achievement of an existent course.
@@ -92,6 +96,7 @@ identityoverview.title=Assessment overview
 index.intro=By means of this tool you can assess your course participants. You can see test or assessment results and modify them. Choose a topic on the left to start.
 index.noAssessableNodes=No assessments can be carried out since there are no assessable course elements in this course. Start the course editor and add an assessable course element to the course structure (e.g. test, assessment).
 index.notifications.assessment=Notification regarding new test results of this course\: 
+index.notifications.certificate=Generated certificates
 index.notifications.title=Notification service 
 index.slow=Please note that it takes time to display modifications of the assessment tool. Please do not use the back or reload button.
 index.title=Assessment tool
@@ -134,6 +139,7 @@ participantgroups.noGroups=This user does not participate in any group.
 participantgroups.title=Participants in groups
 passed.false=<span class\="o_state o_failed"><i class\="o_icon o_icon_failed"> </i> Failed</span>
 passed.true=<span class\="o_state o_passed"><i class\="o_icon o_icon_passed"> </i> Passed</span>
+select.one.user.warning=Please select at least one user
 table.action.delete=Delete
 table.action.launchcourse=Start course
 table.action.select=Select
diff --git a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
index 0707f7699b222906365e8aa231eac97d79994600..82129da28953781d881bc9e188b32de14efbdadd 100644
--- a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
@@ -15,7 +15,7 @@ bulk.action.wrong.config.toSetUserComment=Gem\u00E4ss Konfiguration des Kursbaus
 bulk.action.wrong.float=falsches Zahlenformat
 bulk.assessment.done=Die Massenbewertung ist fertig.
 bulk.assessment.enlisted=Die Massenbewertung ist gespeichert und wird zu einem sp\u00E4teren Zeitpunkt bearbeitet.
-bulk.assessment.error=Eine unerwartete Fehler ist w\u00E4hrend die Massenbewertung aufgetretten.
+bulk.assessment.error=Ein unerwarteter Fehler ist w\u00E4hrend die Massenbewertung aufgetretten.
 bulk.assessment.error.feedback=Es sind Probleme aufgetreten. Die folgenden Daten wurden nicht importiert. Die restlichen Daten wurden trotzdem ausgef\u00FChrt\:<p>{0}
 bulk.assessment.error.title=Nicht alle Bewertung k\u00F6nnte erfolgreich abgelegt werden
 bulk.wizard.desc=Mit dem Werkzeug "Massenbewertung" k\u00F6nnen f\u00FCr mehrere Teilnehmer Bewertungsdaten wie Punkte, Statusinformationen, Kommentare sowie R\u00FCckgabedateien in einem Schritt \u00FCbermittelt werden. 
diff --git a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
index 25ea5d1199129ae07fae526f7013a2f5afc75999..ac73f7565e0e967b9b93a738647d1bb2fc39e1bd 100644
--- a/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
+++ b/src/main/java/org/olat/course/certificate/manager/CertificatesManagerImpl.java
@@ -63,6 +63,7 @@ import org.olat.core.commons.services.notifications.SubscriptionContext;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
+import org.olat.core.id.UserConstants;
 import org.olat.core.logging.OLog;
 import org.olat.core.logging.Tracing;
 import org.olat.core.util.FileUtils;
@@ -805,9 +806,12 @@ public class CertificatesManagerImpl implements CertificatesManager, MessageList
 		Date dateFirstCertification = getDateFirstCertification(identity, resource.getKey());
 		
 		File certificateFile;
-		String courseName = FileUtils.normalizeFilename(entry.getDisplayname());
-		String filename = Util.createPackageTranslator(CertificateController.class, locale)
-				.translate("certificate.filename", new String[]{ courseName }) + ".pdf";
+		StringBuilder sb = new StringBuilder();
+		sb.append(identity.getUser().getProperty(UserConstants.LASTNAME, locale)).append("_")
+		  .append(identity.getUser().getProperty(UserConstants.FIRSTNAME, locale)).append("_")
+		  .append(entry.getDisplayname()).append("_")
+		  .append(Formatter.formatShortDateFilesystem(dateCertification));
+		String filename = FileUtils.normalizeFilename(sb.toString()) + ".pdf";
 		if(template == null || template.getPath().toLowerCase().endsWith("pdf")) {
 			CertificatePDFFormWorker worker = new CertificatePDFFormWorker(identity, entry, score, passed,
 					dateCertification, dateFirstCertification, locale, userManager, this);
diff --git a/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java b/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
index 93b804d966ee6c5ccfa2347038e9bd7975749194..526ba9ac2a70b07b1bec293730115651ebad1172 100644
--- a/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
+++ b/src/main/java/org/olat/course/certificate/ui/CertificatesAdminController.java
@@ -152,7 +152,7 @@ public class CertificatesAdminController extends FormBasicController {
 	private void doDelete(CertificateTemplate template) {
 		certificatesManager.deleteTemplate(template);
 		updateDataModel();
-		showInfo("confirm.certificate.deleted", template.getName());
+		showInfo("confirm.certificate.template.deleted", template.getName());
 	}
 
 	private void doUpload(UserRequest ureq) {
diff --git a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
index 4e2124d8e5a6d66c5af981879c47dbcac3038160..03477dcebe1b034ec214262a86ba2aaec7afbf0c 100644
--- a/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
+++ b/src/main/java/org/olat/course/certificate/ui/DownloadCertificateCellRenderer.java
@@ -120,7 +120,7 @@ public class DownloadCertificateCellRenderer implements CustomCellRenderer, Flex
 	public static String getUrl(Certificate certificate) {
 		StringBuilder sb = new StringBuilder(100);
 		sb.append(Settings.getServerContextPath()).append("/certificate/")
-		  .append(certificate.getUuid()).append("/").append(getName(certificate)).append(".pdf");
+		  .append(certificate.getUuid()).append("/").append(getName(certificate));
 		return sb.toString();
 	}
 }
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
index 486ff132c0c8aae1202c91504dcd663be9e4e937..c5e8eea6bf239069c2f464c1c49a56f5f9f18d12 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_de.properties
@@ -1,20 +1,19 @@
 admin.menu.title=Zertifikate
 admin.menu.title.alt=Zertifikate einstellen
-admin.certificates.title=Einstellungen  configuration
-admin.certificates.description=Hier können Sie Templates hochladen.
+admin.certificates.title=Zertifikate
+admin.certificates.description=Laden Sie PDF-Formulare als Vorlagen f\u00FCr OpenOLAT Kurszertifikate hoch.
 certificate=Zertifikate
 certificate.creationdate=Zertifikat ausgestellt am {0}
-certificate.filename={0}_Zertifikat
-confirm.delete.title=Zertifikate Löschen
-confirm.delete.text=Wollen Sie wirklichen dieser Zertifikat löschen?
+confirm.delete.title=Zertifikate l\u00F6schen
+confirm.delete.text=Wollen Sie dieses Zertifikat wirklich l\u00F6schen?
 table.header.certificate=Zertifikat
-choose.title=Template wählen
+choose.title=Vorlage ausw\u00E4hlen
 default.template=Standardvorlage
 details.certificate=Zertifikat
 details.course.infos=Kursdetails
 download.button=Zertifikat herunterladen
-help.hover.admincertificates=Hilfe über Konfiguration von Zertifikaten
-chelp.admin-certificates.title=Certificates configuration
+help.hover.admincertificates=Hilfe zur Konfiguration von Zertifikaten
+chelp.admin-certificates.title=Konfiguration Zertifikate
 options.certificates.title=Konfiguration Leistungnachweis
 generate.certificate=Zertifikat erzeugen
 no.certificate=Kein Zertifikat vorhanden
@@ -38,25 +37,25 @@ orientation=Ausrichtung
 portrait=Portrait
 landscape=Landschaft
 format=Format
-upload=Template hochladen
-upload.title=Template hochladen
-upload.error.encrypted=Die Template darf nicht verschlüsselt sein.
-upload.unkown.error=Die Template kann nicht gelesen werden.
-upload.error.noindex=Der ZIP Datei enthält kein "index.html" Datei.
-upload.error.simplefonts=Die Fonts den Felder könnte nicht gefunden werden. Bitte benutzen Sie standards Fonts wie Helvetica, und Acrobat Pro um die Felder zu erstellen.
-upload.error.no.phantomjs=PhantomJS ist nicht verfügbar in PATH. HTML template können nicht benutzt werden.
+upload=Vorlage hochladen
+upload.title=Vorlage hochladen
+upload.error.encrypted=Die Vorlage darf nicht verschl\u00FCsselt sein.
+upload.unkown.error=Die Vorlage kann nicht gelesen werden.
+upload.error.noindex=Die ZIP-Datei enth\u00E4lt keine "index.html" Datei.
+upload.error.simplefonts=Der in den Feldern verwendete Font konnte nicht gefunden werden. Bitte benutzen Sie Standardfonts wie z.B. Helvetica, sowie die Acrobat Pro Software, um die Formularfelder zu erstellen.
+upload.error.no.phantomjs=PhantomJS ist nicht verf\u00FCgbar in PATH. HTML template k\u00F6nnen nicht benutzt werden.
 notifications.title=Neue Zertifikate in Kurs "{0}"
-notifications.desc={0} hat eine neue Zertifikate bekommen.
+notifications.desc={0} hat ein neues Zertifikat erhalten.
 notifications.header=Neue Zertifikate in Kurs "{0}"
 certification.email.subject=Sie haben ein OpenOLAT-Zertifikat erhalten
 certification.email.body=Gratuliere!\n\nSie haben ein Zertifikat erhalten.\nAls Anhang finden Sie das Zertifikat des Kurses: "{0}".
 confirm.certificate.title=Zertifikat erstellen
-confirm.certificate.text=Ein Zertifikat wurde schon erstellt und den Period für Rezertifikation ist noch nicht abgelaufen. Wollen Sie trotzdem ein neues Zertifikat erstellen?
-confirm.certificate.deleted=Der Template "{0}" wurde gelöscht.
-confirm.delete.certificate.title=Zertifikat löschen.
-confirm.delete.certificate.text=Wollen Sie wirklich den Zertifikat löschen?
-confirm.certificate.deleted=Der Zertifikate von {0} wurde gelöscht.
-certificates.wizard.title=Zertifikaten erstellen
-certificates.wizard.select=Benutzer auswählen
+confirm.certificate.text=Es wurde bereits ein Zertifikat ausgestellt und die Wartezeit f\u00FCr die Rezertifizierung ist noch nicht abgelaufen. M\u00F6chten Sie dennoch ein neues Zertifikat erstellen?
+confirm.certificate.template.deleted=Die Vorlage "{0}" wurde gel\u00F6scht.
+confirm.delete.certificate.title=Zertifikat l\u00F6schen.
+confirm.delete.certificate.text=Wollen Sie das Zertifikat wirklich l\u00F6schen?
+confirm.certificate.deleted=Das Zertifikat vom {0} wurde gel\u00F6scht.
+certificates.wizard.title=Zertifikate erstellen
+certificates.wizard.select=Benutzer ausw\u00E4hlen
 certificates.wizard.overview=\u00DCbersicht
-msg.certificate.pending=Der Zertifikat wird in ein paar Sekunden erstellt.
\ No newline at end of file
+msg.certificate.pending=Das Zertifikat wird in ein paar Sekunden erstellt.
\ No newline at end of file
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
index 74ed195703a12e81fbf43f3d971ca90a2e266a56..36ee92ba7132a586d770e7cca11168b2ae58ad34 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_en.properties
@@ -1,18 +1,48 @@
-#Tue Dec 16 09:03:36 CET 2014
+#Wed Dec 17 17:00:05 CET 2014
+admin.certificates.description=Upload PDF forms as templates for the course certificates.
+admin.certificates.title=Certificates
 admin.menu.title=Certificates
 admin.menu.title.alt=Certificates configuration
 certificate=Certificates
+certificate.creationdate=Certificate issued on {0}
 certificate.filename={0}_Certificate
 certificates.wizard.overview=Overview
+certificates.wizard.select=Select user
+certificates.wizard.title=Create certificates
+certification.email.body=Congratulations\!\r\n\r\nYou have received a certification.\r\nPlease find attached the certificate to the course "{0}".
+certification.email.subject=You have received an OpenOLAT certification
+chelp.admin-certificates.title=Certificate configuration
+choose.title=Select template
+confirm.certificate.deleted=The certificate from {0} was deleted.
+confirm.certificate.text=A certificate has already been issued and the re-certification period has not yet expired. Do you wish to create a new certificate anyway?
+confirm.certificate.title=Create certificate
+confirm.delete.certificate.text=Do you really wish to delete the certificate?
+confirm.delete.certificate.title=Delete certificate
+confirm.delete.text=Do you really wish to delete this certificate?
+confirm.delete.title=Delete certificates
 default.template=Default template
 details.certificate=Certificate
 details.course.infos=Performance details
+download.button=Download certificate
 format=Format
+generate.certificate=Create certificate
+help.hover.admincertificates=Help regarding the configuration of certificates
 landscape=Landscape
+msg.certificate.pending=The certificate will be created within the next few seconds.
+no.certificate=No certificate available
+notifications.desc={0} received a new certificate.
+notifications.header=New certificates for the course "{0}".
+options.certificates.title=Evidence of achievement configuration
 orientation=Orientation
+pdf.certificates=Generate PDF certificate
+pdf.certificates.auto=Automatically after passing the course
+pdf.certificates.manual=Manually by tutor
+pdf.certificates.none=Do not create new certificate
+pdf.certificates.template=Certificate template
 portrait=Portrait
 preview=Preview
 public.templates=Templates
+recertification=Allow re-certification
 recertification.day=Day
 recertification.month=Month
 recertification.week=Week
@@ -22,3 +52,10 @@ table.header.certificate=Certificate
 template.file=File
 template.name=Name
 timelapse.after=after
+upload=Upload template
+upload.error.encrypted=The template cannot be encrypted.
+upload.error.no.phantomjs=PhantomJS is not in PATH. You cannot use HTML templates.
+upload.error.noindex=The ZIP file doesn't include a "index.html" file.
+upload.error.simplefonts=The font(s) used in the form fields could not be found. Please use standard fonts such as e.g. Helvetica, as well as the Acrobat Pro Software in order to create the form fields.
+upload.title=Upload template
+upload.unkown.error=The template cannot be opened.
diff --git a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
index 1a9a70f11c992382df6968f0e25fc7b758ad2338..8c6a6bdef84fd00410d1f70e3b53cc4cbfe1a394 100644
--- a/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/certificate/ui/_i18n/LocalStrings_fr.properties
@@ -5,7 +5,6 @@ admin.menu.title=Certificats
 admin.menu.title.alt=Configuration certificats
 certificate=Certificats
 certificate.creationdate=Certificat \u00E9tabli le {0}
-certificate.filename={0}_Certificat
 certificates.wizard.overview=Aper\u00E7u
 certificates.wizard.select=Choisir l'utilisateur
 certificates.wizard.title=G\u00E9n\u00E9rer des certificats
diff --git a/src/main/java/org/olat/course/editor/EditorMainController.java b/src/main/java/org/olat/course/editor/EditorMainController.java
index 705a64810526e763f01637049f46d4c982a7494d..4316d59f0a13d5be79d09cb3717f4e4400f28905 100644
--- a/src/main/java/org/olat/course/editor/EditorMainController.java
+++ b/src/main/java/org/olat/course/editor/EditorMainController.java
@@ -28,7 +28,6 @@ package org.olat.course.editor;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
@@ -74,7 +73,6 @@ import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.ActionType;
 import org.olat.core.logging.activity.CourseLoggingAction;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
-import org.olat.core.util.Formatter;
 import org.olat.core.util.StringHelper;
 import org.olat.core.util.Util;
 import org.olat.core.util.coordinate.CoordinatorManager;
@@ -136,9 +134,6 @@ public class EditorMainController extends MainLayoutBasicController implements G
 	protected static final String CMD_MULTI_CHECKLIST = "cmp.multi.checklist";
 
 	// NLS support
-	
-	private static final String NLS_PUBLISHED_NEVER_YET = "published.never.yet";
-	private static final String NLS_PUBLISHED_LATEST = "published.latest";
 	private static final String NLS_COMMAND_COURSEPREVIEW = "command.coursepreview";
 	private static final String NLS_COMMAND_PUBLISH = "command.publish";
 	private static final String NLS_HEADER_INSERTNODES = "header.insertnodes";
@@ -267,14 +262,6 @@ public class EditorMainController extends MainLayoutBasicController implements G
 				euce = new EditorUserCourseEnvironmentImpl(cev);
 				euce.getCourseEditorEnv().setCurrentCourseNodeId(null);
 				
-	
-				long lpTimeStamp = cetm.getLatestPublishTimestamp();
-				if (lpTimeStamp == -1) {				
-					showInfo(NLS_PUBLISHED_NEVER_YET);
-				} else { // course has been published before
-					Date d = new Date(lpTimeStamp);
-					getWindowControl().setInfo(translate(NLS_PUBLISHED_LATEST, Formatter.getInstance(ureq.getLocale()).formatDateAndTime(d)));
-				}
 				menuTree.setTreeModel(cetm);
 				menuTree.setOpenNodeIds(Collections.singleton(cetm.getRootNode().getIdent()));
 				menuTree.addListener(this);
diff --git a/src/main/java/org/olat/course/editor/EditorStatusController.java b/src/main/java/org/olat/course/editor/EditorStatusController.java
index e6646dec7a5eafe3510324c95670164424e78c47..0b15a0570a83cfa88573275f469d411ad8e8d9c4 100644
--- a/src/main/java/org/olat/course/editor/EditorStatusController.java
+++ b/src/main/java/org/olat/course/editor/EditorStatusController.java
@@ -20,6 +20,7 @@
 package org.olat.course.editor;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import org.olat.core.gui.UserRequest;
@@ -28,6 +29,7 @@ import org.olat.core.gui.components.velocity.VelocityContainer;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
+import org.olat.core.util.Formatter;
 import org.olat.course.tree.CourseEditorTreeModel;
 
 /**
@@ -73,66 +75,74 @@ public class EditorStatusController extends BasicController {
 		main.contextRemove("errorHelpWizardLink");
 		main.contextRemove("errorsCount");
 		main.contextRemove("errorIsOpen");
+		
+		long lpTimeStamp = cetm.getLatestPublishTimestamp();
+		if (lpTimeStamp == -1) {				
+			main.contextPut("publishInfos", "published.never.yet");
+		} else { // course has been published before
+			Date d = new Date(lpTimeStamp);
+			main.contextPut("publishInfos", translate("published.latest", Formatter.getInstance(getLocale()).formatDateAndTime(d)));
+		}
+		
 		if (courseStatus == null || courseStatus.length == 0) {
 			main.contextPut("hasCourseStatus", Boolean.FALSE);
 			main.contextPut("errorIsOpen", Boolean.FALSE);
-			return;
-		}
-		//
-		List<String> errorIsForNode = new ArrayList<String>();
-		List<String> errorMessage = new ArrayList<String>();
-		List<String> errorHelpWizardLink = new ArrayList<String>();
-		List<String> warningIsForNode = new ArrayList<String>();
-		List<String> warningMessage = new ArrayList<String>();
-		List<String> warningHelpWizardLink = new ArrayList<String>();
-		//
-		int errCnt = 0;
-		int warCnt = 0;
-		String helpWizardCmd;
-		for (int i = 0; i < courseStatus.length; i++) {
-			StatusDescription description = courseStatus[i];
-			String nodeId = courseStatus[i].getDescriptionForUnit();
-			String nodeName = cetm.getCourseNode(nodeId).getShortName();
-			// prepare wizard link
-			helpWizardCmd = courseStatus[i].getActivateableViewIdentifier();
-			if (helpWizardCmd != null) {
-				helpWizardCmd = "start.help.wizard" + courseStatus[i].getDescriptionForUnit() + "." + courseStatus[i].getShortDescriptionKey();
-			} else {
-				helpWizardCmd = "NONE";
-			}
-			if (description.isError()) {
-				errCnt++;
-				errorIsForNode.add(nodeName);
-				errorMessage.add(description.getShortDescription(getLocale()));
-				errorHelpWizardLink.add(helpWizardCmd);
-			} else if (description.isWarning()) {
-				warCnt++;
-				warningIsForNode.add(nodeName);
-				warningMessage.add(description.getShortDescription(getLocale()));
-				warningHelpWizardLink.add(helpWizardCmd);
-			}
-		}
-
-		if (errCnt > 0 || warCnt > 0) {
-			if (warCnt > 0) {
-				main.contextPut("hasWarnings", Boolean.TRUE);
-				main.contextPut("warningIsForNode", warningIsForNode);
-				main.contextPut("warningMessage", warningMessage);
-				main.contextPut("warningHelpWizardLink", warningHelpWizardLink);
-				main.contextPut("warningsCount", new String[] { Integer.toString(warCnt) });
-				main.contextPut("warningIsOpen", warningIsOpen);
+		} else {
+			List<String> errorIsForNode = new ArrayList<String>();
+			List<String> errorMessage = new ArrayList<String>();
+			List<String> errorHelpWizardLink = new ArrayList<String>();
+			List<String> warningIsForNode = new ArrayList<String>();
+			List<String> warningMessage = new ArrayList<String>();
+			List<String> warningHelpWizardLink = new ArrayList<String>();
+			//
+			int errCnt = 0;
+			int warCnt = 0;
+			String helpWizardCmd;
+			for (int i = 0; i < courseStatus.length; i++) {
+				StatusDescription description = courseStatus[i];
+				String nodeId = courseStatus[i].getDescriptionForUnit();
+				String nodeName = cetm.getCourseNode(nodeId).getShortName();
+				// prepare wizard link
+				helpWizardCmd = courseStatus[i].getActivateableViewIdentifier();
+				if (helpWizardCmd != null) {
+					helpWizardCmd = "start.help.wizard" + courseStatus[i].getDescriptionForUnit() + "." + courseStatus[i].getShortDescriptionKey();
+				} else {
+					helpWizardCmd = "NONE";
+				}
+				if (description.isError()) {
+					errCnt++;
+					errorIsForNode.add(nodeName);
+					errorMessage.add(description.getShortDescription(getLocale()));
+					errorHelpWizardLink.add(helpWizardCmd);
+				} else if (description.isWarning()) {
+					warCnt++;
+					warningIsForNode.add(nodeName);
+					warningMessage.add(description.getShortDescription(getLocale()));
+					warningHelpWizardLink.add(helpWizardCmd);
+				}
 			}
-			if (errCnt > 0) {
-				main.contextPut("hasErrors", Boolean.TRUE);
-				main.contextPut("errorIsForNode", errorIsForNode);
-				main.contextPut("errorMessage", errorMessage);
-				main.contextPut("errorHelpWizardLink", errorHelpWizardLink);
-				main.contextPut("errorsCount", new String[] { Integer.toString(errCnt) });
-				main.contextPut("errorIsOpen", errorIsOpen);
+	
+			if (errCnt > 0 || warCnt > 0) {
+				if (warCnt > 0) {
+					main.contextPut("hasWarnings", Boolean.TRUE);
+					main.contextPut("warningIsForNode", warningIsForNode);
+					main.contextPut("warningMessage", warningMessage);
+					main.contextPut("warningHelpWizardLink", warningHelpWizardLink);
+					main.contextPut("warningsCount", new String[] { Integer.toString(warCnt) });
+					main.contextPut("warningIsOpen", warningIsOpen);
+				}
+				if (errCnt > 0) {
+					main.contextPut("hasErrors", Boolean.TRUE);
+					main.contextPut("errorIsForNode", errorIsForNode);
+					main.contextPut("errorMessage", errorMessage);
+					main.contextPut("errorHelpWizardLink", errorHelpWizardLink);
+					main.contextPut("errorsCount", new String[] { Integer.toString(errCnt) });
+					main.contextPut("errorIsOpen", errorIsOpen);
+				}
+			} else {
+				main.contextPut("hasWarnings", Boolean.FALSE);
+				main.contextPut("hasErrors", Boolean.FALSE);
 			}
-		} else {
-			main.contextPut("hasWarnings", Boolean.FALSE);
-			main.contextPut("hasErrors", Boolean.FALSE);
 		}
 	}
 }
diff --git a/src/main/java/org/olat/course/editor/QuickPublishController.java b/src/main/java/org/olat/course/editor/QuickPublishController.java
index 2bdfe3098b1f2047dbdc3b7cb182652487d53ca1..0dc27c03e895a238f6026ee877fe789af47b4e1d 100644
--- a/src/main/java/org/olat/course/editor/QuickPublishController.java
+++ b/src/main/java/org/olat/course/editor/QuickPublishController.java
@@ -43,6 +43,7 @@ import org.olat.course.CourseFactory;
 import org.olat.course.ICourse;
 import org.olat.course.tree.CourseEditorTreeModel;
 import org.olat.course.tree.PublishTreeModel;
+import org.olat.repository.RepositoryEntry;
 
 /**
  * 
@@ -55,11 +56,37 @@ public class QuickPublishController extends BasicController {
 	private final Link noLink, manualLink, autoLink;
 	private final OLATResourceable courseOres;
 	
-	public QuickPublishController(UserRequest ureq, WindowControl wControl, OLATResourceable courseOres) {
+	public QuickPublishController(UserRequest ureq, WindowControl wControl, ICourse course) {
 		super(ureq, wControl);
-		this.courseOres = OresHelper.clone(courseOres);
-		
+		this.courseOres = OresHelper.clone(course);
+
 		VelocityContainer mainVC = createVelocityContainer("quick_publish");
+		
+		String accessI18n = "";
+		String accessI18CssClass = "o_success";
+		RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
+		if(entry.isMembersOnly()) {
+			accessI18n = translate("cif.access.membersonly");
+		} else {
+			switch (entry.getAccess()) {
+				case 0: accessI18n = "ERROR";
+					accessI18CssClass = "o_error";
+					break;
+				case 1: accessI18n = translate("cif.access.owners");
+					accessI18CssClass = "o_warning";			
+					break;
+				case 2: accessI18n = translate("cif.access.owners_authors");
+					accessI18CssClass = "o_warning";
+					break;
+				case 3: accessI18n = translate("cif.access.users");
+					break;
+				case 4: accessI18n = translate("cif.access.users_guests");
+					break;
+			}
+		}
+		mainVC.contextPut("accessI18n", accessI18n);
+		mainVC.contextPut("accessI18CssClass", accessI18CssClass);
+		
 		noLink = LinkFactory.createButton("pbl.quick.no", mainVC, this);
 		manualLink = LinkFactory.createButton("pbl.quick.manual", mainVC, this);
 		autoLink = LinkFactory.createButton("pbl.quick.auto", mainVC, this);
diff --git a/src/main/java/org/olat/course/editor/_content/quick_publish.html b/src/main/java/org/olat/course/editor/_content/quick_publish.html
index 003907422601cc5dbceaa9d7ec40287ba51d6f9e..b026edeca3eae234e8a267d24abf19d5b6636684 100644
--- a/src/main/java/org/olat/course/editor/_content/quick_publish.html
+++ b/src/main/java/org/olat/course/editor/_content/quick_publish.html
@@ -1,5 +1,6 @@
 <div class="o_info">$r.translate("pbl.quick.description")</div>
-<div class="o_button_group"> 
+<div class="$accessI18CssClass"><label for="access_i18n">$r.translate("cif.access"):</label> <span id="access_i18n">$accessI18n<br/>$r.translate("cif.access.publisc.desc")</span></div>
+<div class="o_button_group">
 	$r.render("pbl.quick.no")
 	$r.render("pbl.quick.manual")
 	$r.render("pbl.quick.auto")
diff --git a/src/main/java/org/olat/course/editor/_content/status.html b/src/main/java/org/olat/course/editor/_content/status.html
index 2528b08bab6437f34581a23fe858cb89ca7cd82e..45a65b2ef1769e7041b3c16102c836d6c27014aa 100644
--- a/src/main/java/org/olat/course/editor/_content/status.html
+++ b/src/main/java/org/olat/course/editor/_content/status.html
@@ -53,6 +53,10 @@
 	</div>
 #end
 
+<div class="o_block small o_course_publish_infos">
+	<p class="o_info">$publishInfos</p>
+</div>
+
 <div class="o_block small o_course_editor_legend">
 	<strong>$r.translate("legend.title")</strong>
 	<ul class="list-unstyled">
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ar.properties
index 2e60a2bf7c4a6c1771f267eaec12d2452cca6d3f..e10b6cd2ed496ced13dac76bf4f28c362bf1667e 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ar.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ar.properties
@@ -293,6 +293,12 @@ chelp.visF=<i>\u00AB$\:chelp.vis\u00BB</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=\u0623\u0648
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u0625\u063A\u0644\u0627\u0642 \u0627\u0644\u0645\u062D\u0631\u0631
 command.copynode=\u0646\u0633\u062E
 command.coursepreview=\u0645\u0639\u0627\u064A\u0646\u0629 \u0627\u0644\u0645\u0642\u0631\u0631
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_bg.properties
index e21cefd6a767a4fbc4c677887b9ab97c07c20c43..c3cece4bde5077d7bcb8bfd22645d6596b299bae 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_bg.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_bg.properties
@@ -286,6 +286,12 @@ chelp.visF=<i>\u0412\u0438\u0434\u0438\u043C\u043E\u0441\u0442</i>
 chelp.wordFalse=\u0413\u0420\u0415\u0428\u041D\u041E
 chelp.wordOr=\u0438\u043B\u0438
 chelp.wordTrue=\u0412\u042F\u0420\u041D\u041E
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u0417\u0430\u0442\u0432\u043E\u0440\u0435\u0442\u0435 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0430
 command.copynode=\u041A\u043E\u043F\u0438\u0440\u0430\u0439\u0442\u0435
 command.coursepreview=\u041A\u0443\u0440\u0441\u043E\u0432 \u043F\u0440\u0435\u0433\u043B\u0435\u0434
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_cs.properties
index de562270b62224049751b404c4573d8df4974dac..5a3397da915f06277cec88c1a03f32d37aafba8f 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_cs.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_cs.properties
@@ -267,6 +267,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=Or
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Zav\u0159\u00EDt editor
 command.copynode=Kop\u00EDrovat
 command.coursepreview=N\u00E1hled kurzu
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_da.properties
index 7ba0f73bcfd913661f8994b012c8dd10bd556697..9a259a36159527f3f314b67e58237cc6c4bd7573 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_da.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_da.properties
@@ -145,6 +145,12 @@ chelp.vis=$org.olat.course.editor\:pane.tab.visibility
 chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Luk editor
 command.copynode=Kopier
 command.coursepreview=Forh\u00E5ndsvisning af kursus
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
index 9bdc28e8df1472292894da1333b6d5f46460db8d..da3c15d6861c1423f300f674b0d05392aa90de85 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_de.properties
@@ -326,6 +326,13 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=oder
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
+cif.access.publisc.desc=Publizieren Sie manuell um diese Zugangskonfiguration zu \u00E4ndern.
 collaboration=Kommunikation und Kollaboration
 command.admin.header=Sammelfunktion
 command.closeeditor=Editor schliessen
@@ -443,7 +450,7 @@ pbl.intro=Bitte w\u00E4hlen Sie die Kursbausteine aus, welche Sie publizieren m\
 pbl.intro.warning=Beim Publizieren von gel\u00F6schten Kursbausteinen werden deren untergeordnete Kursbausteine ebenfalls gel\u00F6scht. Analog werden beim Publizieren von neuen Kursbausteinen deren untergeordnete Kursbausteine ebenfalls publiziert.
 pbl.intro.warning.header=Wichtig
 pbl.quick.title=\u00C4nderungen publizieren
-pbl.quick.description=Der Kurs enthählt unveröffentliche \u00C4nderungen. Wollen Sie diese vor dem Schliessen publizieren?
+pbl.quick.description=Der Kurs enthält unveröffentlichte \u00C4nderungen. Wollen Sie diese vor dem Schliessen publizieren?
 pbl.quick.no=Nein
 pbl.quick.manual=Ja, manuell
 pbl.quick.auto=Ja, automatisch
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_el.properties
index a321033ea7bfbbf1dff4bade789c6846de51628f..9af04c3e655e584ee95a8d3c934bdf7061dccaaa 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_el.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_el.properties
@@ -293,6 +293,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=\u03AE
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03B5\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03C4\u03AE
 command.copynode=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE
 command.coursepreview=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7 \u03BC\u03B1\u03B8\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
index 6d6eade7b5f88b80a2189335a9a85a14358b6010..d2db977c2b9ef356d41cffb972f60ca380822b52 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Mon Aug 25 12:20:24 CEST 2014
+#Wed Dec 17 17:29:34 CET 2014
 access.form.label=Access to entire course have
 access.legend=Modify access to entire course
 alternative=Search for alternative course element
@@ -326,6 +326,13 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=or
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners\t\t\t
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.publisc.desc=Publish manually in order to modify this access configuration.
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 collaboration=Communication and collaboration
 command.admin.header=Collecting function
 command.closeeditor=Close editor
@@ -444,6 +451,11 @@ pbl.intro.warning=When publishing deleted course elements its sub-elements will
 pbl.intro.warning.header=Important
 pbl.nothing=No modifications to be published. The course is up to date.
 pbl.nothing.button=Back to editor
+pbl.quick.auto=Yes, automatically
+pbl.quick.description=There are unpublished modifications to this course. Would you like to publish them befor closing the editor?
+pbl.quick.manual=Yes, manually
+pbl.quick.no=No
+pbl.quick.title=Publish modifications
 pbl.remind.catalog=In case you unlock your course for registered users or guests please remember to indicate this in the catalog under the corresponding heading.
 pbl.success=Selected modifications published successfully.
 publish.access.header=Modification of course access
@@ -466,6 +478,7 @@ publish.withwarnings=Warning
 publish.wizard.title=Publishing
 published.latest=This course was last published on {0}.
 published.never.yet=This course has never been published.
+status=Status
 target.node.child=Subordinate
 target.node.first.node=Beginning
 target.node.last.node=End
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_es.properties
index 54024ed8fdac208aee6a2334595790f17e73eb8b..a97280b077929431a07d018ff5913846e2e60da2 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_es.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_es.properties
@@ -286,6 +286,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=o
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Cerrar editor
 command.copynode=Copiar
 command.coursepreview=Previsualizar curso
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_fr.properties
index 8f1d642c1a7d7673bfdfa29cedaea9556de8c419..adf579b0ed22ab3eb0847773dd1ba9d7cf31f309 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_fr.properties
@@ -1,4 +1,4 @@
-#Sun Dec 14 11:05:56 CET 2014
+#Wed Dec 17 10:50:21 CET 2014
 access.form.label=Avoir acc\u00E8s au cours entier.
 access.legend=Modifier l'acc\u00E8s au cours entier
 alternative=Chercher un \u00E9l\u00E9ment de cours alternatif
@@ -326,6 +326,13 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=ou
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners\t\t\t
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.publisc.desc=Si vous voulez modifier cet configuration d'acc\u00E8s, veuillez utiliser la fonction publier manuellement.
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 collaboration=Communication et collaboration
 command.admin.header=Fonctions
 command.closeeditor=Fermer \u00E9diteur
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_it.properties
index 868a5769c9f87e95f2e1a4c757091d59987746fb..2bf96bb332ef7e47be4134ca4b042b5d353d097b 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_it.properties
@@ -314,6 +314,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=oppure
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Chiudere editore
 command.copynode=Copiare
 command.coursepreview=Anteprima corso
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_jp.properties
index 4f2f4d37c7c9c21c5da41a32f1ad17f919d5146d..11f96cd4f939f68b6cd35fb07777020b144003c6 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_jp.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_jp.properties
@@ -87,6 +87,12 @@ chelp.pntsProcF=<i>\u00AB$org.olat.course.nodes.st\:scorecalc.score\u00BB</i>
 chelp.signM=\u6708
 chelp.ta=<i>$org.olat.course.nodes\:title_ta</i>
 chelp.titleWikiAccRw=Wiki\u306E\u30E9\u30A4\u30C8\u30D1\u30FC\u30DF\u30C3\u30B7\u30E7\u30F3
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u30A8\u30C7\u30A3\u30BF\u3092\u9589\u3058\u308B
 command.copynode=\u30B3\u30D4\u30FC
 command.coursepreview=\u30B3\u30FC\u30B9\u30D7\u30EC\u30D3\u30E5\u30FC
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_lt.properties
index 7248be5ed0d157e74671d7557e4e0cee7c939dba..2d74200ce33d2fdaaae2dd12408a3014b3e3de6e 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_lt.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_lt.properties
@@ -266,6 +266,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=arba
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=U\u017Edarykite redaktori\u0173
 command.copynode=Perkelti
 command.coursepreview=Kurso per\u017Ei\u016Bra
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_nl_NL.properties
index 892ae5ef54c389c5af495aa8d9007dfb805e8609..60eccf5c8d94b0d1dbd5fe37eb69c52dd163eb42 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_nl_NL.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_nl_NL.properties
@@ -314,6 +314,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=of
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Sluit editor
 command.copynode=Kopi\u00EBren
 command.coursepreview=Cursus voorvertoning
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pl.properties
index 498c17ce3a5d2e5b7588d3697f68f85e110d7b09..09d90844de237c9ee4830f31b81b4c7cc9171627 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pl.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pl.properties
@@ -286,6 +286,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=lub
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.admin.header=Wstaw "kolekcje"
 command.closeeditor=Zamknij edytor
 command.copynode=Kopiuj
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
index 0e2da803fd0bce79041d4a26098ad1c72155ff76..077cd7ccf3f8434fe3531f6d98e0c8df0388a36d 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_BR.properties
@@ -326,6 +326,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=ou
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 collaboration=Comunica\u00E7\u00E3o e colabora\u00E7\u00E3o
 command.admin.header=Fun\u00E7\u00E3o de coleta
 command.closeeditor=Fechar editor
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_PT.properties
index af887793e0a67e00f716dea75bb67c7d728bcd95..0ccf88164c6ffda3472c6d24e23ee2dbfdec5f08 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_PT.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_pt_PT.properties
@@ -236,6 +236,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=ou
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Fechar editor
 command.copynode=Copiar
 command.coursepreview=Visualiza\u00E7\u00E3o? do curso
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ru.properties
index 4649c08541c865afcc5a086c7fd9a00e52ab287e..817c69c5485e4be8e4e8ef7d443c25c78e8c9545 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ru.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_ru.properties
@@ -107,6 +107,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=\u0438\u043B\u0438
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440
 command.copynode=\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C
 command.coursepreview=\u041F\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440 \u043A\u0443\u0440\u0441\u0430
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_sq.properties
index 466b0d45aceae91de109b2e38c47b6c40986959d..0b26b753c22af02dbf6107be8895db990443eccb 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_sq.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_sq.properties
@@ -245,6 +245,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=ose
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=Mbylle redaktorin
 command.copynode=Kopjo
 command.coursepreview=Paraafishimi i kursit
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_CN.properties
index d3379ffa803cce9a41f64df3e07ccd5086413699..fc475389d0500b73e003b08c94588573bd1797bd 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_CN.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_CN.properties
@@ -293,6 +293,12 @@ chelp.visF=<i>&laquo;$\:chelp.vis&raquo;</i>
 chelp.wordFalse=FALSE
 chelp.wordOr=\u6216
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u5173\u95ED\u7F16\u8F91\u5668 
 command.copynode=\u79FB\u52A8 
 command.coursepreview=\u8BFE\u7A0B\u9884\u89C8
diff --git a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_TW.properties
index ce8949ce436b6cbec3ae6a63e4074d6134842cb7..34a96c39b58a08334117c1c1163baedf96df4f2f 100644
--- a/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_TW.properties
+++ b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_zh_TW.properties
@@ -6,6 +6,12 @@ checkall=\u5168\u9078
 chelp.1=\u60A8\u5FC5\u9808\u63D0\u4F9B\u9019\u500B\u8AB2\u7A0B\u5143\u7D20\u4E00\u500B\u6700\u591A 25 \u500B\u5B57\u5143\u7684\u7C21\u77ED\u6A19\u984C\u3002
 chelp.10acc=\u73FE\u5728\u9019\u500B\u8AB2\u7A0B\u5143\u7D20\u7684\u5167\u5BB9\u53EA\u80FD\u88AB\u7BA1\u7406\u8005\u548C\u8A72\u8AB2\u7A0B\u7684\u52A9\u6559\u5B58\u53D6\u800C\u5DF2\u3002
 chelp.wordTrue=TRUE
+cif.access=$org.olat.repository\:cif.access
+cif.access.membersonly=$org.olat.repository\:cif.access.membersonly
+cif.access.owners=$org.olat.repository\:cif.access.owners			
+cif.access.owners_authors=$org.olat.repository\:cif.access.owners_authors
+cif.access.users=$org.olat.repository\:cif.access.users
+cif.access.users_guests=$org.olat.repository\:cif.access.users_guests
 command.closeeditor=\u95DC\u9589\u7DE8\u8F2F\u5668
 command.copynode=\u8907\u88FD
 command.coursepreview=\u8AB2\u7A0B\u9810\u89BD
diff --git a/src/main/java/org/olat/course/nodes/COCourseNode.java b/src/main/java/org/olat/course/nodes/COCourseNode.java
index 8f1e405b34e6ed6e084f7c78b831366393b449ea..e31b1afa4880123e0966f69014414cc289fc27e1 100755
--- a/src/main/java/org/olat/course/nodes/COCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/COCourseNode.java
@@ -183,7 +183,7 @@ public class COCourseNode extends AbstractAccessableCourseNode {
         @SuppressWarnings("unchecked")
         List<Long> coachesAreaKeys = (List<Long>) mc.get(COEditController.CONFIG_KEY_EMAILTOCOACHES_AREA_IDS);
         if(coachesAreaKeys != null) {
-            String coachesAreaNames = envMapper.toAreaNames(coachesAreaKeys);    
+            String coachesAreaNames = envMapper.toAreaNames(coachesAreaKeys);
             mc.set(COEditController.CONFIG_KEY_EMAILTOCOACHES_AREA, coachesAreaNames);
         }
         
diff --git a/src/main/java/org/olat/course/nodes/co/COConfigForm.java b/src/main/java/org/olat/course/nodes/co/COConfigForm.java
index d4203a6c234d437202184faa722d26294541e3d3..592f2a23499f02408ee10638ad80322a2b0c38cd 100755
--- a/src/main/java/org/olat/course/nodes/co/COConfigForm.java
+++ b/src/main/java/org/olat/course/nodes/co/COConfigForm.java
@@ -179,6 +179,8 @@ public class COConfigForm extends FormBasicController {
 			if(!coachesChoice.isOneSelected()){
 				coachesChoice.setErrorKey("error.no.choice.specified", null);
 				return false;
+			}else{
+				coachesChoice.clearError();
 			}
 			if(coachesChoice.isSelected(2) &&(isEmpty(easyAreaCoachSelectionList)|| easyAreaCoachSelectionList == null)){
 				if(easyGroupCoachSelectionList.getValue() == null && isEmpty(easyGroupCoachSelectionList) || easyGroupCoachSelectionList.getValue().equals("")){
@@ -186,7 +188,6 @@ public class COConfigForm extends FormBasicController {
 					easyGroupCoachSelectionList.setErrorKey("error.no.group.specified", null);
 					return false;
 				}
-				
 			}
 		}
 
@@ -194,6 +195,8 @@ public class COConfigForm extends FormBasicController {
 			if(!participantsChoice.isOneSelected()){
 				participantsChoice.setErrorKey("error.no.choice.specified", null);
 				return false;
+			}else{
+				participantsChoice.clearError();
 			}
 			if(participantsChoice.isSelected(2) &&(isEmpty(easyAreaParticipantsSelectionList)|| easyAreaParticipantsSelectionList == null)){
 				if(easyGroupParticipantsSelectionList.getValue() == null && isEmpty(easyGroupParticipantsSelectionList)|| easyGroupParticipantsSelectionList.getValue().equals("")){
@@ -368,7 +371,7 @@ public class COConfigForm extends FormBasicController {
 		if( ownerSelection!= null){
 			wantOwners.select("xx", ownerSelection.booleanValue());
 		}
-
+		
 		wantOwners.addActionListener(FormEvent.ONCLICK);
 		
 
@@ -395,6 +398,11 @@ public class COConfigForm extends FormBasicController {
 		chooseGroupCoachesLink.setIconLeftCSS("o_icon o_icon-fw o_icon_group");
 		chooseGroupCoachesLink.setVisible(false);
 		chooseGroupCoachesLink.setLabel("form.message.group", null);
+		
+		if(cev.getCourseGroupManager().getAllBusinessGroups().isEmpty()){
+			chooseGroupCoachesLink.setI18nKey("groupCreate");
+		}
+		
 		chooseGroupCoachesLink.setElementCssClass("o_omit_margin");
 
 		String groupCoachesInitVal;
@@ -417,6 +425,10 @@ public class COConfigForm extends FormBasicController {
 		chooseAreasCoachesLink.setLabel("form.message.area", null);
 		chooseAreasCoachesLink.setElementCssClass("o_omit_margin");
 		
+		if(cev.getCourseGroupManager().getAllAreas().isEmpty()){
+			chooseAreasCoachesLink.setI18nKey("areaCreate");
+		}
+		
 		String areaCoachesInitVal;
 		@SuppressWarnings("unchecked")
 		List<Long> areaCoachesKeys = (List<Long>)config.get(COEditController.CONFIG_KEY_EMAILTOCOACHES_AREA_IDS);
@@ -456,6 +468,10 @@ public class COConfigForm extends FormBasicController {
 		chooseGroupParticipantsLink.setLabel("form.message.group", null);
 		chooseGroupParticipantsLink.setElementCssClass("o_omit_margin");
 
+		if(cev.getCourseGroupManager().getAllBusinessGroups().isEmpty()){
+			chooseGroupParticipantsLink.setI18nKey("groupCreate");
+		}
+		
 		String groupParticipantsInitVal;
 		@SuppressWarnings("unchecked")
 		List<Long> groupParticipantsKeys = (List<Long>)config.get(COEditController.CONFIG_KEY_EMAILTOPARTICIPANTS_GROUP_ID);
@@ -477,6 +493,10 @@ public class COConfigForm extends FormBasicController {
 		chooseAreasParticipantsLink.setLabel("form.message.area", null);
 		chooseAreasParticipantsLink.setElementCssClass("o_omit_margin");
 
+		if(cev.getCourseGroupManager().getAllAreas().isEmpty()){
+			chooseAreasParticipantsLink.setI18nKey("areaCreate");
+		}
+		
 		String areaParticipantsInitVal;
 		@SuppressWarnings("unchecked")
 		List<Long> areaParticipantsKeys = (List<Long>)config.get(COEditController.CONFIG_KEY_EMAILTOPARTICIPANTS_AREA_ID);
@@ -510,15 +530,12 @@ public class COConfigForm extends FormBasicController {
 	}
 
 	private void update () {
-		
-		
 		coachesChoice.setVisible(wantCoaches.isSelected(0));
 		chooseGroupCoachesLink.setVisible(coachesChoice.isSelected(2) && wantCoaches.isSelected(0));
 		chooseAreasCoachesLink.setVisible(coachesChoice.isSelected(2) && wantCoaches.isSelected(0));
 		easyGroupCoachSelectionList.setVisible(coachesChoice.isSelected(2) && wantCoaches.isSelected(0));
 		easyAreaCoachSelectionList.setVisible(coachesChoice.isSelected(2) && wantCoaches.isSelected(0));
 		
-		
 		participantsChoice.setVisible(wantParticipants.isSelected(0));
 		chooseGroupParticipantsLink.setVisible(participantsChoice.isSelected(2) && wantParticipants.isSelected(0));
 		chooseAreasParticipantsLink.setVisible(participantsChoice.isSelected(2) && wantParticipants.isSelected(0));
@@ -532,6 +549,14 @@ public class COConfigForm extends FormBasicController {
 			eList = null;
 		}
 		
+		easyGroupParticipantsSelectionList.clearError();
+		easyAreaParticipantsSelectionList.clearError();
+		easyGroupCoachSelectionList.clearError();
+		easyAreaCoachSelectionList.clearError();
+		
+		coachesChoice.clearError();
+		participantsChoice.clearError();
+		
 		recipentsContainer.clearError();
 		flc.setDirty(true);
 	}
@@ -541,9 +566,7 @@ public class COConfigForm extends FormBasicController {
 		if (source == chooseGroupCoachesLink) {
 			removeAsListenerAndDispose(cmc);
 			removeAsListenerAndDispose(groupChooseCoaches);
-			
-			
-			
+
 			groupChooseCoaches = new GroupSelectionController(ureq, getWindowControl(), true,
 					cev.getCourseGroupManager(), getKeys(easyGroupCoachSelectionList));
 			listenTo(groupChooseCoaches);
@@ -606,6 +629,7 @@ public class COConfigForm extends FormBasicController {
 				easyGroupCoachSelectionList.setValue(getGroupNames(groupChooseCoaches.getSelectedKeys()));
 				easyGroupCoachSelectionList.setUserObject(groupChooseCoaches.getSelectedKeys());
 				easyGroupCoachSelectionList.getRootForm().submit(ureq);
+				chooseGroupCoachesLink.setI18nKey("groupCoachesChoose");
 			} else if (Event.CANCELLED_EVENT == event) {
 				cmc.deactivate();
 			}
@@ -615,6 +639,7 @@ public class COConfigForm extends FormBasicController {
 				easyAreaCoachSelectionList.setValue(getAreaNames(areaChooseCoaches.getSelectedKeys()));
 				easyAreaCoachSelectionList.setUserObject(areaChooseCoaches.getSelectedKeys());
 				easyAreaCoachSelectionList.getRootForm().submit(ureq);
+				chooseAreasCoachesLink.setI18nKey("areaCoachesChoose");
 			} else if (event == Event.CANCELLED_EVENT) {
 				cmc.deactivate();
 			}
@@ -624,6 +649,7 @@ public class COConfigForm extends FormBasicController {
 				easyGroupParticipantsSelectionList.setValue(getGroupNames(groupChooseParticipants.getSelectedKeys()));
 				easyGroupParticipantsSelectionList.setUserObject(groupChooseParticipants.getSelectedKeys());
 				easyGroupParticipantsSelectionList.getRootForm().submit(ureq);
+				chooseGroupParticipantsLink.setI18nKey("groupParticipantsChoose");
 			} else if (Event.CANCELLED_EVENT == event) {
 				cmc.deactivate();
 			}
@@ -633,11 +659,12 @@ public class COConfigForm extends FormBasicController {
 				easyAreaParticipantsSelectionList.setValue(getAreaNames(areaChooseParticipants.getSelectedKeys()));
 				easyAreaParticipantsSelectionList.setUserObject(areaChooseParticipants.getSelectedKeys());
 				easyAreaParticipantsSelectionList.getRootForm().submit(ureq);
+				chooseAreasCoachesLink.setI18nKey("areaParticipantsChoose");
 			} else if (event == Event.CANCELLED_EVENT) {
 				cmc.deactivate();
 			}
 		}
-
+		
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/nodes/co/CORunController.java b/src/main/java/org/olat/course/nodes/co/CORunController.java
index b5eecfb52aff5ab06cc94dd7274e2b8ba1010390..fe754b48ddf9f692087578db81e325e92e032b53 100755
--- a/src/main/java/org/olat/course/nodes/co/CORunController.java
+++ b/src/main/java/org/olat/course/nodes/co/CORunController.java
@@ -147,11 +147,11 @@ public class CORunController extends BasicController {
 			contactLists.push(cl);
 		}
 		if(participantGroupNames != null){
-			ContactList cl = retrieveCoachesFromAreas(participantGroupKeys);
+			ContactList cl = retrieveParticipantsFromGroups(participantGroupKeys);
 			contactLists.push(cl);
 		}
 		if(participantAreaNames != null){
-			ContactList cl = retrieveCoachesFromAreas(participantAreaKeys);
+			ContactList cl = retrieveParticipantsFromAreas(participantAreaKeys);
 			contactLists.push(cl);
 		}
 		if (coachesAllConfigured != null && coachesAllConfigured.booleanValue()) {
diff --git a/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_de.properties
index 0c28782be8494efb56f36d4f30c4aeaf7d93035f..c00c5d2b5db076d954a8bc3d519089d1a00fb765 100755
--- a/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/nodes/co/_i18n/LocalStrings_de.properties
@@ -9,13 +9,13 @@ chelp.co2a=Geben Sie hier den Betreff der Nachricht ein
 chelp.co3=(z.B. E-Mail aus dem Kurs "Methoden_1" im HS 10/11).
 chelp.co4=(z.B. Fragen zum Kurs "Methoden_1").
 chelp.co5=Dieser Text ist optional und kann noch ge\u00E4ndert oder erg\u00E4nzt werden.
-groupCoachesChoose=Gruppe ausw\u00E4hlen/erstellen
-groupParticipantsChoose=Gruppe ausw\u00E4heln/erstellen
+groupCoachesChoose=Gruppe ausw\u00E4hlen
+groupParticipantsChoose=Gruppe ausw\u00E4hlen
 groupCreate=Gruppe erstellen
 condition.accessibility.title=Zugang
-areaCreate=Lernarea erstellen
-areaCoachesChoose=Lernarea ausw\u00E4hlen
-areaParticipantsChoose=Lernarea ausw\u00E4hlen
+areaCreate=Lernbereich erstellen
+areaCoachesChoose=Lernbereich ausw\u00E4hlen
+areaParticipantsChoose=Lernbereich ausw\u00E4hlen
 email.not.specified=Bitte Empf\u00E4nger angeben
 email.not.valid=E-Mail-Adresse ung\u00FCltig
 error.norecipients.long=Es sind keine Empf\u00E4nger f\u00FCr {0} definiert. Diese k\u00F6nnen unter dem Tab "Empf\u00E4nger" angegeben werden.
@@ -48,7 +48,7 @@ message.emailtoadresses=E-Mailadressen
 message.subject=Betreff (Vorlage)
 message.want.email=Versand an E-Mailadressen
 message.want.group=Versand an Gruppenmitglieder
-message.want.coaches=Versand an Coaches
+message.want.coaches=Versand an Betreuer
 message.want.participants=Versand an Teilnehmer
 message.want.owners=Versand an Kurseigent\u00FCmer
 no.recipents.specified=Bitte w\u00E4hlen Sie mindestens eine Empf\u00E4ngerkategorie aus
diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
index f038c094040254749b63dcafaac00ceba00aab2d..3dc8cb864844b5bb03ec42fed41ba5f996feacff 100644
--- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
+++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectListController.java
@@ -29,9 +29,9 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import org.olat.NewControllerFactory;
 import org.olat.core.CoreSpringFactory;
 import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.Windows;
 import org.olat.core.gui.components.Component;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
@@ -50,8 +50,6 @@ import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
 import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController;
-import org.olat.core.gui.control.generic.dtabs.DTab;
-import org.olat.core.gui.control.generic.dtabs.DTabs;
 import org.olat.core.gui.render.Renderer;
 import org.olat.core.gui.render.StringOutput;
 import org.olat.core.id.Identity;
@@ -72,9 +70,6 @@ import org.olat.course.nodes.projectbroker.service.ProjectGroupManager;
 import org.olat.course.properties.CoursePropertyManager;
 import org.olat.course.run.userview.UserCourseEnvironment;
 import org.olat.group.BusinessGroup;
-import org.olat.user.HomePageConfigManager;
-import org.olat.user.HomePageConfigManagerImpl;
-import org.olat.user.UserInfoMainController;
 
 /**
  *
@@ -368,20 +363,8 @@ public class ProjectListController extends BasicController implements GenericEve
 	}
 
 	private void openUserInPopup(UserRequest ureq, final Identity ident){
-		// did not work to open as popup based on ureq! -> open as tab in same window
-			HomePageConfigManager hpcm = HomePageConfigManagerImpl.getInstance();
-			OLATResourceable ores = hpcm.loadConfigFor(ident.getName());
-			DTabs dts = Windows.getWindows(ureq).getWindow(ureq).getDTabs();
-			DTab dt = dts.getDTab(ores);
-			if (dt == null) {
-				// does not yet exist -> create and add
-				dt = dts.createDTab(ores, ident.getName());
-				if (dt == null) return;
-				UserInfoMainController uimc = new UserInfoMainController(ureq, dt.getWindowControl(), ident);
-				dt.setController(uimc);
-				dts.addDTab(ureq, dt);
-			}
-			dts.activate(ureq, dt, null);
+		String businessPath = "[HomePage:" + ident.getKey() + "]";
+		NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
 	}
 	
 
diff --git a/src/main/java/org/olat/home/InviteeHomeMainController.java b/src/main/java/org/olat/home/InviteeHomeMainController.java
deleted file mode 100644
index c2bf7b31f78620b6000f6640b03ba5f210c5fb2a..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/home/InviteeHomeMainController.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.home;
-
-import org.olat.core.commons.fullWebApp.LayoutMain3ColsController;
-import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.tree.GenericTreeModel;
-import org.olat.core.gui.components.tree.GenericTreeNode;
-import org.olat.core.gui.components.tree.MenuTree;
-import org.olat.core.gui.components.tree.TreeModel;
-import org.olat.core.gui.components.tree.TreeNode;
-import org.olat.core.gui.components.velocity.VelocityContainer;
-import org.olat.core.gui.control.Event;
-import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.controller.MainLayoutBasicController;
-import org.olat.core.util.Util;
-import org.olat.core.util.nodes.INode;
-
-/**
- * 
- * Description:<br>
- * this a home for invitee because Olat need at least 1 static tab to start.
- * 
- * <P>
- * Initial Date:  7 déc. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- */
-public class InviteeHomeMainController extends MainLayoutBasicController {
-	private static final String VELOCITY_ROOT = Util.getPackageVelocityRoot(InviteeHomeMainController.class);
-	private MenuTree olatMenuTree;
-	private VelocityContainer welcome;
-	private LayoutMain3ColsController	columnLayoutCtr;
-
-	/**
-	 * Constructor of the guest home main controller
-	 * 
-	 * @param ureq The user request
-	 * @param wControl The window control
-	 */
-	public InviteeHomeMainController(UserRequest ureq, WindowControl wControl) {
-		super(ureq, wControl);
-
-		olatMenuTree = new MenuTree("olatMenuTree");
-		TreeModel tm = buildTreeModel();
-		olatMenuTree.setTreeModel(tm);
-		olatMenuTree.setSelectedNodeId(tm.getRootNode().getIdent());
-		olatMenuTree.addListener(this);
-
-		welcome = createVelocityContainer("inviteewelcome");
-
-		// Activate correct position in menu
-		INode firstNode = tm.getRootNode().getChildAt(0);
-		olatMenuTree.setSelectedNodeId(firstNode.getIdent());
-
-		columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), olatMenuTree, welcome, null);
-		listenTo(columnLayoutCtr); // cleanup on dispose
-		// add background image to home site
-		columnLayoutCtr.addCssClassToMain("o_home");
-		
-		putInitialPanel(columnLayoutCtr.getInitialComponent());
-	}
-
-	/**
-	 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
-	 *      org.olat.core.gui.components.Component, org.olat.core.gui.control.Event)
-	 */
-	public void event(UserRequest ureq, Component source, Event event) {
-		if (source == olatMenuTree) {
-			// process menu commands
-			if (event.getCommand().equals(MenuTree.COMMAND_TREENODE_CLICKED)) {
-				TreeNode selTreeNode = olatMenuTree.getSelectedNode();
-				String cmd = (String) selTreeNode.getUserObject();
-				if (cmd.equals("guestinfo")) {
-					welcome.setPage(VELOCITY_ROOT + "/guestinfo.html");
-				}
-			}
-		} else {
-			logWarn("Unhandled olatMenuTree event: " + event.getCommand(), null);
-		}
-	}
-
-	private TreeModel buildTreeModel() {
-		GenericTreeNode root, gtn;
-
-		GenericTreeModel gtm = new GenericTreeModel();
-		root = new GenericTreeNode();
-		root.setTitle(translate("menu.guest"));
-		root.setUserObject("guest");
-		root.setAltText(translate("menu.guest.alt"));
-		gtm.setRootNode(root);
-
-		gtn = new GenericTreeNode();
-		gtn.setTitle(translate("menu.guestinfo"));
-		gtn.setUserObject("guestinfo");
-		gtn.setAltText(translate("menu.guestinfo.alt"));
-		root.addChild(gtn);
-
-		return gtm;
-	}
-
-	/**
-	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
-	 */
-	protected void doDispose() {
-		// controller disposed by BasicController
-		columnLayoutCtr = null;
-	}
-}
\ No newline at end of file
diff --git a/src/main/java/org/olat/home/InviteeHomeSite.java b/src/main/java/org/olat/home/InviteeHomeSite.java
deleted file mode 100644
index 2f6e930ae8cc0e44633ad63bc298c907affb89a3..0000000000000000000000000000000000000000
--- a/src/main/java/org/olat/home/InviteeHomeSite.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * <a href="http://www.openolat.org">
- * OpenOLAT - Online Learning and Training</a><br>
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); <br>
- * you may not use this file except in compliance with the License.<br>
- * You may obtain a copy of the License at the
- * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
- * <p>
- * Unless required by applicable law or agreed to in writing,<br>
- * software distributed under the License is distributed on an "AS IS" BASIS, <br>
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
- * See the License for the specific language governing permissions and <br>
- * limitations under the License.
- * <p>
- * Initial code contributed and copyrighted by<br>
- * frentix GmbH, http://www.frentix.com
- * <p>
- */
-package org.olat.home;
-
-import java.util.Locale;
-
-import org.olat.core.commons.chiefcontrollers.BaseChiefController;
-import org.olat.core.gui.UserRequest;
-import org.olat.core.gui.control.WindowControl;
-import org.olat.core.gui.control.generic.layout.MainLayoutController;
-import org.olat.core.gui.control.navigation.AbstractSiteInstance;
-import org.olat.core.gui.control.navigation.DefaultNavElement;
-import org.olat.core.gui.control.navigation.NavElement;
-import org.olat.core.gui.control.navigation.SiteConfiguration;
-import org.olat.core.gui.control.navigation.SiteDefinition;
-import org.olat.core.gui.translator.Translator;
-import org.olat.core.logging.OLATSecurityException;
-import org.olat.core.util.Util;
-
-/**
- * 
- * Description:<br>
- * Create the home site for invitee
- * 
- * <P>
- * Initial Date:  7 déc. 2010 <br>
- * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
- */
-public class InviteeHomeSite extends AbstractSiteInstance {
-	private NavElement origNavElem;
-	private NavElement curNavElem;
-
-	public InviteeHomeSite(SiteDefinition siteDef, Locale loc) {
-		super(siteDef);
-		Translator trans = Util.createPackageTranslator(BaseChiefController.class, loc);
-		origNavElem = new DefaultNavElement(trans.translate("topnav.guesthome"), trans.translate("topnav.guesthome.alt"), "o_site_home");		
-		curNavElem = new DefaultNavElement(origNavElem);
-	}
-
-	/**
-	 * @see org.olat.navigation.SiteInstance#getNavElement()
-	 */
-	public NavElement getNavElement() {
-		return curNavElem;
-	}
-
-	@Override
-	protected MainLayoutController createController(UserRequest ureq, WindowControl wControl, SiteConfiguration config) {
-		if (!ureq.getUserSession().getRoles().isInvitee()) {
-			throw new OLATSecurityException("Tried to launch a InviteeMainController, but is not an invitee " + ureq.getUserSession().getRoles());
-		}
-		return new InviteeHomeMainController(ureq, wControl);
-	}
-
-	/**
-	 * @see org.olat.navigation.SiteInstance#isKeepState()
-	 */
-	public boolean isKeepState() {
-		return true;
-	}
-	
-	public void reset() {
-		curNavElem = new DefaultNavElement(origNavElem);
-	}
-}
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
index 823d75cbc94ad370c2b235ea6479383b457c6903..4abbf5ec4efe15667a25490a28478fb40604bf8d 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_de.properties
@@ -11,9 +11,9 @@ admin.menu.title.alt=OAuth and social providers
 authentication.provider.description=Login with your favorite social media
 authentication.provider.linkText=Social logins
 error.access.denied=Access denied.
-error.generic=Eine unerwartete Fehler ist aufgetreten.
+error.generic=Ein unerwarteter Fehler ist aufgetreten.
 error.token.rejected=Token rejected.
-error.account.creation=Sie haben zur Zeit kein Konto auf OpenOLAT.
+error.account.creation=Sie haben zur Zeit kein OpenOLAT-Konto.
 error.invalid.grant=Sie dürfen nicht auf OpenOLAT zugreifen.
 error.no.id=Wir könnten Sie nicht identifizieren.
 login=Login
diff --git a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
index b25fe8958cd7e1b0743e58cf657f95831cd5ae4d..83308c8ce9ebd82ecf629fefe1f4e9793c528e9d 100644
--- a/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/login/oauth/ui/_i18n/LocalStrings_en.properties
@@ -1,5 +1,6 @@
-#Tue Dec 16 09:06:13 CET 2014
+#Wed Dec 17 17:34:51 CET 2014
 adfs.admin.title=Active directory federation system
+adfs.admin.title.alt=Active directory federation system
 adfs.api.id=Client ID
 adfs.default.enabled=Root login (redirect dmz)
 adfs.enabled=ADFS
@@ -11,6 +12,9 @@ authentication.provider.description=Login with your favorite social media
 authentication.provider.linkText=Social logins
 disclaimer.title=Disclaimer
 error.access.denied=Access denied.
+error.account.creation=You currently have no OpenOLAT account.
+error.generic=An unexpected error occurred.
+error.invalid.grant=You are not allowed to access OpenOLAT.
 error.token.rejected=Token rejected.
 facebook.admin.title=Facebook Konfiguration
 facebook.api.id=App key
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
index 4aeb1e54daeb62c2bc448ce9b34cb8535d8aed2f..207d865f24ebcde9f5ec3ae9680ab034da8955c4 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_de.properties
@@ -57,4 +57,4 @@ search.menu.title=Benutzersuche
 search.menu.title.alt=Benutzersuche
 search.form.login=Benutzername
 error.search.form.notempty=$org.olat.admin.user:error.search.form.notempty
-error.search.form.too.many=Zu viele Treffer wurde gefunden. Bitte beschränken Sie ihre Suche.
\ No newline at end of file
+error.search.form.too.many=Die Suche lieferte zu viele Treffer. Bitte schr\u00e4nken Sie ihre Suche ein.
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
index 3ad734af740a6e2f87a19f50aba6e5503c7efab1..17c01ed08598d578d25be24415889b47f702da32 100644
--- a/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/coach/ui/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Tue Dec 16 09:00:16 CET 2014
+#Wed Dec 17 15:24:45 CET 2014
 chelp.coaching.intro=If you are coaching a learning group or a course and your course creates an efficiency statement triggered by assessment data, the coaching tool will appear in the top navigation. The coaching tool grants a course comprehensive view to learners assessment status. \r\n<br/>Use the navigation in the menu to examine the learning stats of individual users, groups or even entire courses. A progress bare indicates if a user, group or course met all the required assessments or if something is missing of users did not pass the assessments. In the list view, use the column ordering to sort by users which needs the most attention. \r\n<br />Once in the user view you can use the arrow navigation to cycle through your users to simplify navigation. In the users detail view you will see the users efficiency statement as it is also seen by the user. Switch to the assessment tool view to adjust the users score or to leave him a comment.
 chelp.coaching.title=Coaching tool
 coaching.enabled=Coaching enable
@@ -12,6 +12,7 @@ details.assessment=Assessment tool
 details.statement=Efficiency statement
 error.no.found=Nichts gefunden
 error.search.form.notempty=$org.olat.admin.user\:error.search.form.notempty
+error.search.form.too.many=Too many search results. Please narrow down your search
 group.name=Name
 groups.menu.title=Groups
 groups.menu.title.alt=Groups
@@ -37,6 +38,7 @@ previous.student=$\:previous
 search=Search
 search.form.login=User name
 search.menu.title=User search
+search.menu.title.alt=User search
 site.title=Coaching
 site.title.alt=Coaching
 student.name=Name
diff --git a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
index 7f175723acdf786ef47eb7b086d50aa8619dd9a9..26772b49fcaa26e9e9a945479d5255d1a88d92da 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_de.properties
@@ -35,4 +35,4 @@ feed.item.confirm.delete = Wollen Sie diesen Eintrag wirklich l\u00F6schen?
 feed.item.is.being.edited.by = Der Eintrag wird bereits von {0} bearbeitet.
 feed.is.being.edited.by = Die Beschreibung wird bereits von {0} bearbeitet.
 feed.link.more=weiterlesen
-feed.error=Leider ist ein unerwartete Fehler aufgetretten und der Feed konnte nicht dargestellt werden.
\ No newline at end of file
+feed.error=Aufgrund eines unerwarteten Fehlers konnte der Feed leider nicht dargestellt werden.
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
index c71ea3ce9f08fac4d98e263063e88376c4f1b716..2ba3567ab58a7c04721f3c2a963e835e9de923b6 100644
--- a/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/webFeed/ui/_i18n/LocalStrings_en.properties
@@ -1,6 +1,7 @@
-#Fri Feb 24 11:56:12 CET 2012
+#Wed Dec 17 15:28:01 CET 2014
 ULLimitExceeded=$org.olat.core.commons.modules.bc\:ULLimitExceeded
 feed.author=Author
+feed.error=Unfortunately, the feed can not be displayed due to an unexpected error.
 feed.file.label=Image
 feed.form.description=Description
 feed.form.feedurl=Feed URL
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
index c1b3ae92a287316fba388e7189b3fb5b113e5ff6..1223a8da265e7a1b21b278b3b709be16defff571 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -1,4 +1,4 @@
-#Tue Dec 16 09:06:36 CET 2014
+#Wed Dec 17 09:51:55 CET 2014
 CourseModule=Course
 EPStructuredMapTemplate=Portfolio template
 Failed=The transmission of this file failed.
@@ -279,6 +279,7 @@ details.close=Close info page
 details.close.ressoure=Close
 details.copy=Copy
 details.delete=Delete
+details.delete.acknowledge=Confirmation
 details.delete.error.editor=This learning resource cannot be deleted. This learning resource is currently used by another user in the editor.
 details.delete.error.references=This learning resource cannot be deleted. There are active references to this resource within OpenOLAT.<br /><br /><font color\="red">{0}</font>
 details.description=Description of learning resource
@@ -376,6 +377,7 @@ lifecycle.validTo=$\:cif.date.end
 mail.member=$org.olat.group.ui.main\:mail.member
 managed.resource=External management
 managed.resource.intro=This course has been created by an external tool. Therefore some settings and modules can not be modified and used within OpenOLAT. The following elements are blocked within OpenOLAT\:
+menu.repository.admin.alt=$\:menu.repository.admin
 message.entry.selected=Learning resource "{0}" with type "{1}" allocated successfully.
 msg.warnusers=(There are {0} users currently using this resource)
 my.course.comment.enabled=Comments in "Course"
@@ -452,6 +454,7 @@ rentry.publish.users=for users
 repo.login=Login
 repository.admin.title=Repository settings
 repositoryentry.not.existing=This resource is no longer available.
+resource.editor=Editor
 resource.error.test.xml=Learning resource could not be added. The qti.xml file could not be parsed.
 resource.error.zip=Learning resource could not be added. The zip file could not be unzipped. 
 resource.general.error=Learning resource could not be added. Either its format or its version is not supported by OpenOLAT.
@@ -512,6 +515,7 @@ tab.log=Log files
 tab.public=General
 tab.quota.edit=Quota
 tab.sharedfolder=Resource folder
+table.filter=Filter
 table.header.ac=AC
 table.header.access=Access*
 table.header.access.author=<span class\="o_ochre">OA--</span>
@@ -535,6 +539,7 @@ table.header.firstTime=$org.olat.group.ui.main\:table.header.firstTime
 table.header.freePlace=$org.olat.group.ui.main\:table.header.freePlace
 table.header.graduate=$org.olat.group.ui.main\:table.header.graduate
 table.header.groups=$org.olat.group.ui.main\:table.header.groups
+table.header.key=ID
 table.header.lastName=$org.olat.group.ui.main\:table.header.lastName
 table.header.lastTime=$org.olat.group.ui.main\:table.header.lastTime
 table.header.lastusage=Last access
diff --git a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
index c3b1f4bf1b37e4b0b3a47e0a451662f6f7189efe..6b14372bc221f022dec8b845a7ca6febdd41907b 100644
--- a/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
+++ b/src/main/java/org/olat/repository/handlers/WebDocumentHandler.java
@@ -215,9 +215,9 @@ public class WebDocumentHandler extends FileHandler {
 	public MainLayoutController createLaunchController(RepositoryEntry re,  RepositoryEntrySecurity reSecurity, UserRequest ureq, WindowControl wControl) {
 		return new RepositoryEntryRuntimeController(ureq, wControl, re, reSecurity, new RuntimeControllerCreator() {
 			@Override
-			public Controller create(UserRequest ureq, WindowControl wControl, TooledStackedPanel toolbarPanel,
-					RepositoryEntry entry, RepositoryEntrySecurity reSecurity) {
-				return new WebDocumentRunController(ureq, wControl, entry);
+			public Controller create(UserRequest uureq, WindowControl wwControl, TooledStackedPanel toolbarPanel,
+					RepositoryEntry entry, RepositoryEntrySecurity rereSecurity) {
+				return new WebDocumentRunController(uureq, wwControl, entry);
 			}
 		});
 	}
diff --git a/src/main/java/org/olat/repository/manager/CatalogManager.java b/src/main/java/org/olat/repository/manager/CatalogManager.java
index 36c60209ca193dc408ec2b88ad43c5727aa4765d..b5a06836df7a9f6f2d54af29775155f0bc92e1a3 100644
--- a/src/main/java/org/olat/repository/manager/CatalogManager.java
+++ b/src/main/java/org/olat/repository/manager/CatalogManager.java
@@ -187,7 +187,7 @@ public class CatalogManager implements UserDataDeletable, InitializingBean {
 		TypedQuery<CatalogEntry> dbQuery = dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), CatalogEntry.class)
 				.setParameter("parentKey", ce.getKey())
-				.setFirstResult(0);
+				.setFirstResult(firstResult);
 		if(maxResults > 0) {
 			dbQuery.setMaxResults(maxResults);
 		}
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java b/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
index 5459cc0992abd0cf46cadbc0897f83b3488dde3f..80e0f4899295a56e0caa55231c14c3dccb03b465 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryStatisticsDAO.java
@@ -24,17 +24,13 @@ import java.util.Date;
 import javax.annotation.PostConstruct;
 import javax.persistence.LockModeType;
 
-import org.olat.commons.lifecycle.LifeCycleManager;
 import org.olat.core.commons.persistence.DB;
 import org.olat.core.commons.services.commentAndRating.UserCommentsDelegate;
 import org.olat.core.commons.services.commentAndRating.UserRatingsDelegate;
 import org.olat.core.commons.services.commentAndRating.manager.UserCommentsDAO;
 import org.olat.core.commons.services.commentAndRating.manager.UserRatingsDAO;
 import org.olat.core.id.OLATResourceable;
-import org.olat.core.logging.OLog;
-import org.olat.core.logging.Tracing;
 import org.olat.repository.RepositoryEntry;
-import org.olat.repository.delete.service.RepositoryDeletionManager;
 import org.olat.repository.model.RepositoryEntryStatistics;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -47,8 +43,6 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCommentsDelegate {
-	
-	private static final OLog log = Tracing.createLoggerFor(RepositoryEntryStatisticsDAO.class);
 
 	@Autowired
 	private DB dbInstance;
@@ -68,16 +62,13 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 	 * @param re
 	 */
 	public synchronized void incrementLaunchCounter(RepositoryEntry re) {
-		Date previousLastUsage = null;
 		RepositoryEntryStatistics stats = loadStatisticsForUpdate(re);
 		if(stats != null) {
 			stats.setLaunchCounter(stats.getLaunchCounter() + 1);
-			previousLastUsage = stats.getLastUsage();
 			stats.setLastUsage(new Date());
 			dbInstance.getCurrentEntityManager().merge(stats);
 		}
 		dbInstance.commit();
-		updateLifeCycle(re, previousLastUsage);
 	}
 
 	/**
@@ -85,16 +76,13 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 	 * @param re
 	 */
 	public void incrementDownloadCounter(RepositoryEntry re) {
-		Date previousLastUsage = null;
 		RepositoryEntryStatistics stats = loadStatisticsForUpdate(re);
 		if(stats != null) {
 			stats.setDownloadCounter(stats.getDownloadCounter() + 1);
-			previousLastUsage = stats.getLastUsage();
 			stats.setLastUsage(new Date());
 			dbInstance.getCurrentEntityManager().merge(stats);
 		}
 		dbInstance.commit();
-		updateLifeCycle(re, previousLastUsage);
 	}
 
 	/**
@@ -112,18 +100,6 @@ public class RepositoryEntryStatisticsDAO implements UserRatingsDelegate, UserCo
 			stats.setLastUsage(newUsage);
 			dbInstance.getCurrentEntityManager().merge(stats);
 			dbInstance.commit();
-			updateLifeCycle(re, lastUsage);
-		}
-	}
-	
-	private void updateLifeCycle(RepositoryEntry reloadedRe, Date previousLastUsage) {
-		if(reloadedRe == null) return;
-		if(previousLastUsage == null || previousLastUsage.getTime() < (System.currentTimeMillis() - (60 * 60 * 1000))) {
-			LifeCycleManager lcManager = LifeCycleManager.createInstanceFor(reloadedRe);
-			if (lcManager.hasLifeCycleEntry(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION)) {
-				log.audit("Repository-Deletion: Remove from delete-list repositoryEntry=" + reloadedRe);
-				lcManager.deleteTimestampFor(RepositoryDeletionManager.SEND_DELETE_EMAIL_ACTION);
-			}
 		}
 	}