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 5cf83f4470d95401f8acf5d6c71a93c9f38db0e3..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\u00F6nnen 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\u00F6schen
-confirm.delete.text=Wollen Sie wirklichen dieser Zertifikat l\u00F6schen?
+confirm.delete.title=Zertifikate l\u00F6schen
+confirm.delete.text=Wollen Sie dieses Zertifikat wirklich l\u00F6schen?
 table.header.certificate=Zertifikat
 choose.title=Vorlage ausw\u00E4hlen
 default.template=Standardvorlage
 details.certificate=Zertifikat
 details.course.infos=Kursdetails
 download.button=Zertifikat herunterladen
-help.hover.admincertificates=Hilfe \u00FCber Konfiguration von Zertifikaten
-chelp.admin-certificates.title=Konfiguration Zertifikaten
+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
@@ -42,21 +41,21 @@ 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=Der ZIP Datei enth\u00E4lt kein "index.html" Datei.
-upload.error.simplefonts=Die Fonts den Felder k\u00F6nnte nicht gefunden werden. Bitte benutzen Sie standards Fonts wie Helvetica, und Acrobat Pro um die Felder zu erstellen.
+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\u00FCr Rezertifikation ist noch nicht abgelaufen. Wollen Sie trotzdem ein neues Zertifikat erstellen?
-confirm.certificate.deleted=Die Vorlage "{0}" wurde gel\u00F6scht.
+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 wirklich den Zertifikat l\u00F6schen?
-confirm.certificate.deleted=Der Zertifikate von {0} wurde gel\u00F6scht.
-certificates.wizard.title=Zertifikaten erstellen
+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 8654b508fd40ea46d5ab3737017183be116f2530..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,21 +1,43 @@
-#Wed Dec 17 08:23:49 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
@@ -33,4 +55,7 @@ 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/QuickPublishController.java b/src/main/java/org/olat/course/editor/QuickPublishController.java
index 1ef2de17faaddae672e2b3eadf42eb34fbccf4bf..0dc27c03e895a238f6026ee877fe789af47b4e1d 100644
--- a/src/main/java/org/olat/course/editor/QuickPublishController.java
+++ b/src/main/java/org/olat/course/editor/QuickPublishController.java
@@ -63,7 +63,7 @@ public class QuickPublishController extends BasicController {
 		VelocityContainer mainVC = createVelocityContainer("quick_publish");
 		
 		String accessI18n = "";
-		String accessI18CssClass = "o_info";
+		String accessI18CssClass = "o_success";
 		RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
 		if(entry.isMembersOnly()) {
 			accessI18n = translate("cif.access.membersonly");
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 8b39a8bf9677209f3e887275e1c4149e9f32c5cf..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
@@ -450,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_en.properties b/src/main/java/org/olat/course/editor/_i18n/LocalStrings_en.properties
index b3723ddbbefe234264bb448fea4160df727695bf..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 @@
-#Wed Dec 17 09:49:54 CET 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
@@ -452,6 +452,7 @@ 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
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/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 5f67f79544ad60f9c7610bcfd74c8d07b342c3d9..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,4 +1,4 @@
-#Wed Dec 17 09:49:58 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
@@ -12,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/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);
-			}
 		}
 	}