diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java
index d6b2a05e2d66890b82943202e7075a2006b921d2..6e6ea7e3e8a1d0f46be4f28c9426e69e2bc30943 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java
@@ -110,7 +110,9 @@ public class AssessmentCourseTreeController extends BasicController implements A
 	
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java
index bc4ece695e21586438234823297a8626ca0465f9..3bb50e5cc3dc3684116bffbb4d77ffc9b22c0cfa 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentToolController.java
@@ -224,7 +224,9 @@ public class AssessmentToolController extends MainLayoutBasicController implemen
 
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
index a494cee81670b17dfbdf3610fd1538d04afc82f7..8726b8259cf14d151559077b8a56959402a53c76 100644
--- a/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
+++ b/src/main/java/org/olat/course/assessment/ui/tool/IdentityListCourseNodeController.java
@@ -555,6 +555,9 @@ public class IdentityListCourseNodeController extends FormBasicController
 
 	@Override
 	protected void doDispose() {
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 		coordinatorManager.getCoordinator().getEventBus()
 			.deregisterFor(this, courseEntry.getOlatResource());
 	}
diff --git a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java
index 640c8eb4ace61012f55286dd20eae7462890e28d..4298b02d37a96e19f9af52d728d592a4f4f7fc69 100644
--- a/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java
+++ b/src/main/java/org/olat/course/nodes/iq/IQConfigurationController.java
@@ -658,11 +658,11 @@ public class IQConfigurationController extends BasicController {
 		return repositoryManager.lookupRepositoryEntryBySoftkey(repoSoftkey, false);
 	}
 
-	/**
-	 * @see org.olat.core.gui.control.DefaultController#doDispose(boolean)
-	 */
 	@Override
 	protected void doDispose() {
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 		//child controllers registered with listenTo() get disposed in BasicController
 		if (previewLayoutCtr != null) {
 			previewLayoutCtr.dispose();
diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java
index 912c01f966a26901115ed4938b3fb496b620b7a8..f07145384383c78bb6bef47135c45bd56d9101ec 100644
--- a/src/main/java/org/olat/course/run/CourseRuntimeController.java
+++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java
@@ -1025,20 +1025,28 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	@Override
 	protected void cleanUp() {
 		removeAsListenerAndDispose(lifeCycleChangeCtr);
+		removeAsListenerAndDispose(assessmentModeCtrl);
+		removeAsListenerAndDispose(lecturesAdminCtrl);
 		removeAsListenerAndDispose(assessmentToolCtr);
 		removeAsListenerAndDispose(courseFolderCtrl);
 		removeAsListenerAndDispose(statisticsCtrl);
+		removeAsListenerAndDispose(remindersCtrl);
 		removeAsListenerAndDispose(databasesCtrl);
+		removeAsListenerAndDispose(lecturesCtrl);
 		removeAsListenerAndDispose(archiverCtrl);
 		removeAsListenerAndDispose(statsToolCtr);
 		removeAsListenerAndDispose(membersCtrl);
 		removeAsListenerAndDispose(areasCtrl);
 		removeAsListenerAndDispose(leaveDialogBox);
 		lifeCycleChangeCtr = null;
+		assessmentModeCtrl = null;
+		lecturesAdminCtrl = null;
 		assessmentToolCtr = null;
 		courseFolderCtrl = null;
 		statisticsCtrl = null;
+		remindersCtrl = null;
 		databasesCtrl = null;
+		lecturesCtrl = null;
 		archiverCtrl = null;
 		statsToolCtr = null;
 		membersCtrl = null;
diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties
index 8eb5751ad81bfbf878f5aabd4a7fd986ce9f13a5..1ea9c70c7759c01375c2633aa11bff9e0b96a182 100644
--- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_de.properties
@@ -165,6 +165,7 @@ view=Ansehen
 view.template=Raumvorlage "{0}"
 warning.at.least.one.meeting=Sie m\u00FCssen mindestens ein Meeting w\u00E4hlen.
 warning.meeting.started=Sie k\u00F6nnen ein gestartetes Meeting nicht mehr bearbeiten.
+warning.no.access=Sie k\u00F6nnen noch nicht den Meeting beitreten.
 warning.template.in.use=Die Raumvorlage kann nicht gel\u00F6scht werden da sie nocht benutzt wird. L\u00F6schschen Sie zuerst die entsprechenden Online-Termine oder deaktivieren Sie die Raumvorlage.
 wizard.dates.title=Datum
 wizard.meeting.title=Konfiguration
diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties
index 009c3b80c1b9b7b560fa53bcc63eb78fbf58003f..af713e71b0634652465f59d2839f1f54dea7af09 100644
--- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_en.properties
@@ -165,6 +165,7 @@ view=View
 view.template=Room-template "{0}"
 warning.at.least.one.meeting=You must select at least one meeting.
 warning.meeting.started=You cannot edit a started meeting anymore.
+warning.no.access=You cannot access the meeting yet.
 warning.template.in.use=The room-template cannot be deleted because it is used by online-meetings. Delete the corresponding online-meeting or de-activate the room-template.
 wizard.dates.title=Dates
 wizard.meeting.title=Configuration
diff --git a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties
index 612e47425ddf4086ad6079cb50bdd4f694b1d053..2ea39b07b9981144880da5f0c797b9525eee2925 100644
--- a/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/bigbluebutton/ui/_i18n/LocalStrings_fr.properties
@@ -110,4 +110,5 @@ template.name=Nom
 templates.title=Mod\u00E8les
 view=Regarder
 view.template=Mod\u00E8le de salle de r\u00E9union "{0}"
+warning.no.access=Vous ne pouvez pas encore acc\u00E9der au meeting.
 warning.template.in.use=Le mod\u00E8le ne peut pas \u00EAtre effacer car il est encore utilis\u00E9.
diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java
index ec0801fc92cddd1921b5b9ea1cd0292966080682..57566ba1fad0dca68f87825f9dfd6ad614b4f6e1 100644
--- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java
+++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumComposerController.java
@@ -274,6 +274,7 @@ public class CurriculumComposerController extends FormBasicController implements
 
 	@Override
 	protected void doDispose() {
+		toolbarPanel.removeListener(this);
 		if(!toolbarPanel.isToolbarEnabled()) {
 			toolbarPanel.setToolbarEnabled(true);
 		}
diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
index 94e4a49c84480f6d71dcd4806291ca99620b5bbc..c44e6cbe61b1edf41149107614ba5d1d166863f3 100644
--- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewController.java
@@ -95,6 +95,14 @@ public class TeacherOverviewController extends AbstractTeacherOverviewController
 		super.initTables(ureq, withTeachers, withAssessment);
 	}
 
+	@Override
+	protected void doDispose() {
+		if(toolbarPanel != null) {
+			toolbarPanel.removeListener(this);
+		}
+		super.doDispose();
+	}
+
 	@Override
 	protected List<LectureBlockRow> getRows(LecturesBlockSearchParameters searchParams) {
 		Identity filterByTeacher = ((Boolean)allTeachersSwitch.getUserObject()).booleanValue() ? null : getIdentity();
diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
index 8c11a99351e4bd4a146e782ad61179135ac401d1..2e634f7227d0ef56e6329513618a318ae91b0439 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/BinderController.java
@@ -176,7 +176,9 @@ public class BinderController extends BasicController implements TooledControlle
 
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java
index 74b66fbe85aa3436155f5fad4e45b88ac722ac39..916dbab7736beacc120b0c52e152b797afb764db 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/PageMetadataController.java
@@ -221,10 +221,13 @@ public class PageMetadataController extends BasicController {
 			List<File> documents = null;
 
 			File storage = fileStorage.getAssignmentDirectory(assignment);
-			if(storage != null) {
-				documents = Arrays.<File>asList(storage.listFiles(SystemFileFilter.DIRECTORY_FILES));
-				if(!documents.isEmpty()) {
-					needMapper = true;
+			if(storage != null && storage.exists()) {
+				File[] files = storage.listFiles(SystemFileFilter.DIRECTORY_FILES);
+				if(files != null && files.length > 0) {
+					documents = Arrays.<File>asList(files);
+					if(!documents.isEmpty()) {
+						needMapper = true;
+					}
 				}
 			}
 
diff --git a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java
index 73a4a33d51df93dda8b6c4eb3dd4f4e90f7bd6b0..c30186f8d260bd4f52d1022cbc4ee77d2002d88e 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/PageRunController.java
@@ -354,6 +354,9 @@ public class PageRunController extends BasicController implements TooledControll
 	
 	@Override
 	protected void doDispose() {
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 		if (lockEntry != null && lockEntry.isSuccess()) {
 			// release lock
 			coordinator.getCoordinator().getLocker().releaseLock(lockEntry);
diff --git a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
index 813f607bac57a6dd1aae31da97c8ef2520986ad3..f48040ca05dc89a0222f09daf8fe0f3eb7a0ccaa 100644
--- a/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/QuestionListController.java
@@ -259,6 +259,14 @@ public class QuestionListController extends AbstractItemListController implement
 			bulkChange = uifactory.addFormLink("bulk.change", formLayout, Link.BUTTON);
 		}
 	}
+	
+	@Override
+	protected void doDispose() {
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
+		super.doDispose();
+	}
 
 	public QuestionItemCollection getItemCollection() {
 		return itemCollection;
diff --git a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java
index 2c32b5a2e53bdf359f349403b11672fcd4ff86c4..64a31ca32d7d765442657691d6c4a03e7b65b79a 100644
--- a/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java
+++ b/src/main/java/org/olat/modules/taxonomy/ui/TaxonomyTreeTableController.java
@@ -210,7 +210,9 @@ public class TaxonomyTreeTableController extends FormBasicController implements
 
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java
index 69439e536bbfb26a2e30a352f357fdc02933fce5..5561a74df4b635f11d3bcfe1d360b1479ae4710c 100644
--- a/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java
+++ b/src/main/java/org/olat/user/ui/organisation/OrganisationsStructureAdminController.java
@@ -136,7 +136,9 @@ public class OrganisationsStructureAdminController extends FormBasicController i
 
 	@Override
 	protected void doDispose() {
-		//
+		if(stackPanel != null) {
+			stackPanel.removeListener(this);
+		}
 	}
 	
 	private void loadModel(boolean reset) {
diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js b/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js
index 40d3dc7ccf436715c95b8bd8b8d6b2e6b1c1da67..7e4f74ad82b8abae24facbca0124b3ba35126fb5 100644
--- a/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js
+++ b/src/main/webapp/static/js/jquery/openolat/jquery.navbar.js
@@ -325,7 +325,7 @@
 		var more = $('#o_navbar_more');
 		if(more.length == 0){
 			more = $('<ul id="o_navbar_more" class="nav o_navbar-nav o_dropdown_toggle"><li>'
-						+ '<a class="dropdown-toggle" data-toggle="dropdown" href="#"">'+o_info.i18n_topnav_more+' <b class="caret"></b></a>'
+						+ '<a class="dropdown-toggle" data-toggle="dropdown" href="#">'+o_info.i18n_topnav_more+' <b class="caret"></b></a>'
 						+ '<ul class="dropdown-menu dropdown-menu-right"></ul>'
 					+ '</li></ul>');
 			more.appendTo(collapse);
diff --git a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
index 95711020fff1311ea4193a7eced7d75fd6b805ea..b89b42459b45bb685413c2224cd475cc50bcb9a4 100644
--- a/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
+++ b/src/main/webapp/static/js/jquery/openolat/jquery.paint.js
@@ -25,7 +25,7 @@
 		
 		var usePointerApi = false;
 		if (window.PointerEvent) {
-			usePointerApi = true;
+			usePointerApi = false;
 		}
 		
 		var useRequestAnimationFrame = false;