diff --git a/src/main/java/org/olat/course/config/ui/CourseToolbarController.java b/src/main/java/org/olat/course/config/ui/CourseToolbarController.java
index ee4b45b7bb83e2ef8961631a50c732d9e5f086e2..2583770bfcc8cace0d8076f1991d8f00f017678c 100644
--- a/src/main/java/org/olat/course/config/ui/CourseToolbarController.java
+++ b/src/main/java/org/olat/course/config/ui/CourseToolbarController.java
@@ -267,7 +267,7 @@ public class CourseToolbarController extends FormBasicController {
 	        	.fireEventToListenersOf(new CourseConfigEvent(CourseConfigType.calendar, course.getResourceableId()), course);
 		}
 		
-		fireEvent(ureq, new ReloadSettingsEvent());
+		fireEvent(ureq, new ReloadSettingsEvent(false, true, false));
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java
index c20ad1e5c9a41ee8fff5766814a1e506c0e8c5fe..313a27cef016d83b1b138b0c67402fcafe2ab96a 100644
--- a/src/main/java/org/olat/course/run/CourseRuntimeController.java
+++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java
@@ -429,14 +429,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			toolbarPanel.setBreadcrumbEnabled(false);
 		}
 		
-		if(!isAssessmentLock()) {
-			initSettingsTools(toolsDropdown);
-			initEditorTools(toolsDropdown, uce);
-			initRuntimeTools(toolsDropdown, uce);
-			initStatistics(toolsDropdown, course, uce);
-			initEditionTools(toolsDropdown);
-			initDeleteTools(toolsDropdown);
-		}
+		initToolsMenu(toolsDropdown);
 		initToolsMyCourse(course, uce);
 		initGeneralTools(course);
 		
@@ -457,7 +450,25 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	}
 	
 	@Override
-	protected void initSettingsTools(Dropdown tools) {
+	protected void initToolsMenu(Dropdown toolsDropdown) {
+		toolsDropdown.removeAllComponents();
+		toolsDropdown.setDirty(true);
+		
+		if(!isAssessmentLock()) {
+			ICourse course = CourseFactory.loadCourse(getRepositoryEntry());
+			UserCourseEnvironmentImpl uce = getUserCourseEnvironment();
+			
+			initToolsMenuSettings(toolsDropdown);
+			initToolsMenuEditor(toolsDropdown, uce);
+			initToolsMenuRuntime(toolsDropdown, uce);
+			initToolsMenuStatistics(toolsDropdown, course, uce);
+			initToolsMenuEdition(toolsDropdown);
+			initToolsMenuDelete(toolsDropdown);
+		}
+	}
+	
+	@Override
+	protected void initToolsMenuSettings(Dropdown tools) {
 		// 1) administrative tools
 		if (reSecurity.isEntryAdmin() || reSecurity.isPrincipal() || reSecurity.isCoach()
 				|| hasCourseRight(CourseRights.RIGHT_COURSEEDITOR) || hasCourseRight(CourseRights.RIGHT_MEMBERMANAGEMENT)
@@ -482,7 +493,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		}
 	}
 	
-	private void initEditorTools(Dropdown tools, final UserCourseEnvironmentImpl uce) {
+	private void initToolsMenuEditor(Dropdown tools, final UserCourseEnvironmentImpl uce) {
 		if(uce == null) return;
 		
 		if (reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR)) {
@@ -503,7 +514,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		}
 	}
 	
-	private void initRuntimeTools(Dropdown tools, final UserCourseEnvironmentImpl uce) {
+	private void initToolsMenuRuntime(Dropdown tools, final UserCourseEnvironmentImpl uce) {
 		boolean courseAuthorRight = reSecurity.isEntryAdmin() || hasCourseRight(CourseRights.RIGHT_COURSEEDITOR);
 		if (courseAuthorRight || reSecurity.isPrincipal() || reSecurity.isCoach()
 				|| hasCourseRight(CourseRights.RIGHT_DB)
@@ -559,7 +570,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		return lectureConfig != null && lectureConfig.isLectureEnabled();
 	}
 	
-	private void initStatistics(Dropdown tools, ICourse course, final UserCourseEnvironmentImpl uce) {
+	private void initToolsMenuStatistics(Dropdown tools, ICourse course, final UserCourseEnvironmentImpl uce) {
 		if (reSecurity.isEntryAdmin() || reSecurity.isPrincipal() || reSecurity.isCoach()
 				|| hasCourseRight(CourseRights.RIGHT_ARCHIVING) || hasCourseRight(CourseRights.RIGHT_STATISTICS)) {	
 
@@ -606,7 +617,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 	}
 
 	@Override
-	protected void initDeleteTools(Dropdown settingsDropdown) {
+	protected void initToolsMenuDelete(Dropdown settingsDropdown) {
 		RepositoryEntry re = getRepositoryEntry();
 		boolean closeManged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.close);
 		
diff --git a/src/main/java/org/olat/ims/qti/QTIRuntimeController.java b/src/main/java/org/olat/ims/qti/QTIRuntimeController.java
index 9da7481175020a405388d9922a06829bac728e37..77e552a3c94f2b58b53f19266701b601518eaa13 100644
--- a/src/main/java/org/olat/ims/qti/QTIRuntimeController.java
+++ b/src/main/java/org/olat/ims/qti/QTIRuntimeController.java
@@ -73,8 +73,8 @@ public class QTIRuntimeController extends RepositoryEntryRuntimeController imple
 	}
 	
 	@Override
-	protected void initEditionTools(Dropdown settingsDropdown) {
-		super.initEditionTools(settingsDropdown);
+	protected void initToolsMenuEdition(Dropdown settingsDropdown) {
+		super.initToolsMenuEdition(settingsDropdown);
 		RepositoryEntry re = getRepositoryEntry();
 		boolean copyManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.copy);
 		boolean canConvert = (isAuthor || reSecurity.isEntryAdmin()) && (re.getCanCopy() || reSecurity.isEntryAdmin()) && !copyManaged
diff --git a/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeController.java b/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeController.java
index 6e6e73c29234fe4240c1d8c72704ad6ee7ecde55..b6cc6815ceb551d05a2cf382aa38233667843884 100644
--- a/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/QTI21RuntimeController.java
@@ -79,7 +79,7 @@ public class QTI21RuntimeController extends RepositoryEntryRuntimeController  {
 	}
 
 	@Override
-	protected void initRuntimeTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuRuntime(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin() || reSecurity.isCoach()) {
 			assessmentLink = LinkFactory.createToolLink("assessment", translate("command.openassessment"), this, "o_icon_assessment_tool");
 			assessmentLink.setElementCssClass("o_sel_course_assessment_tool");
@@ -89,7 +89,7 @@ public class QTI21RuntimeController extends RepositoryEntryRuntimeController  {
 			toolsDropdown.addComponent(testStatisticLink);
 		}
 		
-		super.initRuntimeTools(toolsDropdown);
+		super.initToolsMenuRuntime(toolsDropdown);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementListController.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementListController.java
index ff2fe4a9ca63963d1480229cf824f7dc6b53caa4..7e9b6594ad768c2e57fc756298dbb8e3c88cef83 100644
--- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementListController.java
+++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementListController.java
@@ -324,13 +324,19 @@ public class CurriculumElementListController extends FormBasicController impleme
 	}
 	
 	private void forge(CurriculumElementWithViewsRow row, Collection<Long> repoKeys, List<OLATResourceAccess> resourcesWithOffer) {
-		if(row.getRepositoryEntryKey() == null) return;
-			
+		if(row.getRepositoryEntryKey() == null || guestOnly) return;// nothing for guests
+
+		boolean isMember = repoKeys.contains(row.getRepositoryEntryKey());
+		row.setMember(isMember);
+		
+		FormLink startLink = null;
 		List<PriceMethod> types = new ArrayList<>();
-		if (!row.isAllUsers() && !row.isGuests()) {
-			// members only always show lock icon
-			types.add(new PriceMethod("", "o_ac_membersonly_icon", translate("cif.access.membersonly.short")));
-		} else {
+		if(row.isAllUsers() || isMember) {
+			startLink = uifactory.addFormLink("start_" + (++counter), "start", "start", null, null, Link.LINK);
+			startLink.setElementCssClass("o_start btn-block");
+			startLink.setCustomEnabledLinkCSS("o_start btn-block");
+			startLink.setIconRightCSS("o_icon o_icon_start");
+		} else if(row.isBookable()) {
 			// collect access control method icons
 			OLATResource resource = row.getOlatResource();
 			for(OLATResourceAccess resourceAccess:resourcesWithOffer) {
@@ -344,15 +350,27 @@ public class CurriculumElementListController extends FormBasicController impleme
 					}
 				}
 			}
+			
+			startLink = uifactory.addFormLink("start_" + (++counter), "start", "book", null, null, Link.LINK);
+			startLink.setElementCssClass("o_start btn-block");
+			startLink.setCustomEnabledLinkCSS("o_book btn-block");
+			startLink.setIconRightCSS("o_icon o_icon_start");
 		}
+
+		if(startLink != null) {
+			startLink.setUserObject(row);
+			row.setStartLink(startLink);
+		}
+
 		
-		row.setMember(repoKeys.contains(row.getRepositoryEntryKey()));
-		
+		if (!row.isAllUsers() && !row.isGuests()) {
+			// members only always show lock icon
+			types.add(new PriceMethod("", "o_ac_membersonly_icon", translate("cif.access.membersonly.short")));
+		}
 		if(!types.isEmpty()) {
 			row.setAccessTypes(types);
 		}
 		
-		forgeStartLink(row);
 		forgeDetails(row);
 		forgeMarkLink(row);
 		forgeSelectLink(row);
@@ -365,22 +383,6 @@ public class CurriculumElementListController extends FormBasicController impleme
 		row.setDetailsLink(detailsLink);
 	}
 	
-	private void forgeStartLink(CurriculumElementWithViewsRow row) {
-		String label;
-		boolean isStart = true;
-		if((row.isAllUsers() || row.isGuests()) && row.getAccessTypes() != null && !row.getAccessTypes().isEmpty() && !row.isMember()) {
-			label = "book";
-			isStart = false;
-		} else {
-			label = "start";
-		}
-		FormLink startLink = uifactory.addFormLink("start_" + (++counter), "start", label, null, null, Link.LINK);
-		startLink.setUserObject(row);
-		startLink.setCustomEnabledLinkCSS(isStart ? "o_start btn-block" : "o_book btn-block");
-		startLink.setIconRightCSS("o_icon o_icon_start");
-		row.setStartLink(startLink);
-	}
-	
 	private void forgeMarkLink(CurriculumElementWithViewsRow row) {
 		if(!guestOnly) {
 			FormLink markLink = uifactory.addFormLink("mark_" + (++counter), "mark", "", null, null, Link.NONTRANSLATED);
diff --git a/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementWithViewsRow.java b/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementWithViewsRow.java
index edc986fa103cb5b960a07c6ae5bec2850bcd1931..20c6a523661c5b90687c0f4a9128b385f98c87ec 100644
--- a/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementWithViewsRow.java
+++ b/src/main/java/org/olat/modules/curriculum/ui/CurriculumElementWithViewsRow.java
@@ -68,8 +68,9 @@ public class CurriculumElementWithViewsRow implements CurriculumElementWithView,
 	private String shortenedDescription;
 	
 	private RepositoryEntryStatusEnum status;
-	private boolean allUsers;
 	private boolean guests;
+	private boolean allUsers;
+	private boolean bookable;
 	private List<PriceMethod> accessTypes;
 
 	private boolean member;
@@ -117,6 +118,7 @@ public class CurriculumElementWithViewsRow implements CurriculumElementWithView,
 		
 		guests = repositoryEntryView.isGuests();
 		allUsers = repositoryEntryView.isAllUsers();
+		bookable = repositoryEntryView.isBookable();
 		status = repositoryEntryView.getEntryStatus();
 		repositoryEntry = repositoryEntryView;
 		olatResource = repositoryEntryView.getOlatResource();
@@ -276,6 +278,10 @@ public class CurriculumElementWithViewsRow implements CurriculumElementWithView,
 		return guests;
 	}
 	
+	public boolean isBookable() {
+		return bookable;
+	}
+	
 	public boolean isThumbnailAvailable() {
 		return StringHelper.containsNonWhitespace(thumbnailRelPath);
 	}
diff --git a/src/main/java/org/olat/modules/lecture/ui/LectureRepositorySettingsController.java b/src/main/java/org/olat/modules/lecture/ui/LectureRepositorySettingsController.java
index d1b1045446b7e3c1eb26bbbb233b709cd959adb3..4ed9be489b4a5fdcff648190c9b2ae25a0ba1353 100644
--- a/src/main/java/org/olat/modules/lecture/ui/LectureRepositorySettingsController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/LectureRepositorySettingsController.java
@@ -326,7 +326,7 @@ public class LectureRepositorySettingsController extends FormBasicController {
 		lectureConfig = lectureService.updateRepositoryEntryLectureConfiguration(lectureConfig);
 		dbInstance.commit();
 		lectureService.syncCalendars(entry);
-		fireEvent(ureq, new ReloadSettingsEvent());
+		fireEvent(ureq, new ReloadSettingsEvent(false, true, false));
 	}
 	
 	@Override
diff --git a/src/main/java/org/olat/modules/portfolio/ui/BinderRuntimeController.java b/src/main/java/org/olat/modules/portfolio/ui/BinderRuntimeController.java
index 8b8c761e683dc801d2b00c2afc367c153538d43b..5f32976890471e56bf2385052696c17d03dab8eb 100644
--- a/src/main/java/org/olat/modules/portfolio/ui/BinderRuntimeController.java
+++ b/src/main/java/org/olat/modules/portfolio/ui/BinderRuntimeController.java
@@ -63,7 +63,7 @@ public class BinderRuntimeController extends RepositoryEntryRuntimeController {
 	}
 
 	@Override
-	protected void initRuntimeTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuRuntime(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin()) {
 			membersLink = LinkFactory.createToolLink("members", translate("details.members"), this, "o_sel_repo_members");
 			membersLink.setIconLeftCSS("o_icon o_icon-fw o_icon_membersmanagement");
diff --git a/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java b/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
index 58e9fc3bfb4f5dbbe9f931234ec9a81feb80acae..f19b0b19b40bfe97d5da65ac04b066682e5497d0 100644
--- a/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
+++ b/src/main/java/org/olat/modules/video/ui/VideoRuntimeController.java
@@ -62,7 +62,7 @@ public class VideoRuntimeController extends RepositoryEntryRuntimeController {
 	}
 	
 	@Override
-	protected void initEditorTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuEditor(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin()) {
 			toolsDropdown.addComponent(new Spacer("video-editor"));
 			
diff --git a/src/main/java/org/olat/portfolio/ui/EPTemplateRuntimeController.java b/src/main/java/org/olat/portfolio/ui/EPTemplateRuntimeController.java
index 85665182dbb0fcc315ee21626bf051e4802c4e2b..13b51300aba8d399b41620c84ae1826ccd68077a 100644
--- a/src/main/java/org/olat/portfolio/ui/EPTemplateRuntimeController.java
+++ b/src/main/java/org/olat/portfolio/ui/EPTemplateRuntimeController.java
@@ -47,7 +47,7 @@ public class EPTemplateRuntimeController extends RepositoryEntryRuntimeControlle
 	}
 	
 	@Override
-	protected void initEditorTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuEditor(Dropdown toolsDropdown) {
 		if(getRuntimeController() instanceof EPMapViewController) {
 			EPMapViewController mapCtrl = (EPMapViewController)getRuntimeController();
 			if(mapCtrl.canEditStructure()) {
diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index 1102587ed1c9b3067930e65b325d1c545fde4caf..37659bd501b9caea3a11790eb63da58dc465aa10 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -636,6 +636,28 @@ public class RepositoryManager {
 		return updatedRe;
 	}
 	
+	public RepositoryEntry setAccess(final RepositoryEntry re,
+			boolean canCopy, boolean canReference, boolean canDownload) {
+		RepositoryEntry reloadedRe = repositoryEntryDao.loadForUpdate(re);
+		if(reloadedRe == null) {
+			return null;
+		}
+		reloadedRe.setLastModified(new Date());
+		//properties
+		reloadedRe.setCanCopy(canCopy);
+		reloadedRe.setCanReference(canReference);
+		reloadedRe.setCanDownload(canDownload);
+		RepositoryEntry updatedRe = dbInstance.getCurrentEntityManager().merge(reloadedRe);
+		//fetch the values
+		updatedRe.getStatistics().getLaunchCounter();
+		if(updatedRe.getLifecycle() != null) {
+			updatedRe.getLifecycle().getCreationDate();
+		}
+
+		dbInstance.commit();
+		return updatedRe;
+	}
+	
 	
 	public RepositoryEntry setAccess(final RepositoryEntry re, boolean allUsers, boolean guests, boolean bookable,
 			RepositoryEntryAllowToLeaveOptions leaveSetting, List<Organisation> organisations) {
diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
index f643d59e07fcdd2692635323fdbce7b6f050af11..c75661c333ebd22d3a196869a507ff1b1551fab0 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
@@ -122,7 +122,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 	private RepositoryEntryDetailsController detailsCtrl;
 	private RepositoryMembersController membersEditController;
 	protected RepositoryEntrySettingsController settingsCtrl;
-	protected RepositoryEditDescriptionController descriptionCtrl;
+	protected RepositoryEditDescriptionController descriptionCtrl2;
 	
 	private Dropdown tools;
 	private Dropdown status;
@@ -361,13 +361,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 	}
 	
 	protected void initToolbar(Dropdown toolsDropdown) {
-		toolsDropdown.removeAllComponents();
-		
-		initSettingsTools(toolsDropdown);
-		initEditorTools(toolsDropdown);
-		initRuntimeTools(toolsDropdown);
-		initEditionTools(toolsDropdown);
-		initDeleteTools(toolsDropdown);
+		initToolsMenu(toolsDropdown);
 
 		detailsLink = LinkFactory.createToolLink("details", translate("details.header"), this, "o_sel_repo_details");
 		detailsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_details");
@@ -383,7 +377,17 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		toolbarPanel.addTool(bookmarkLink, Align.right);
 	}
 	
-	protected void initSettingsTools(Dropdown toolsDropdown) {
+	protected void initToolsMenu(Dropdown toolsDropdown) {
+		toolsDropdown.removeAllComponents();
+		
+		initToolsMenuSettings(toolsDropdown);
+		initToolsMenuEditor(toolsDropdown);
+		initToolsMenuRuntime(toolsDropdown);
+		initToolsMenuEdition(toolsDropdown);
+		initToolsMenuDelete(toolsDropdown);
+	}
+	
+	protected void initToolsMenuSettings(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin()) {
 			settingsLink = LinkFactory.createToolLink("settings", translate("details.settings"), this, "o_sel_repo_settings");
 			settingsLink.setIconLeftCSS("o_icon o_icon-fw o_icon_settings");
@@ -396,7 +400,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		}
 	}
 	
-	protected void initEditorTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuEditor(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin() && handler.supportsEdit(re.getOlatResource()) == EditionSupport.yes) {
 			toolsDropdown.addComponent(new Spacer("editors-tools"));
 			
@@ -408,7 +412,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		}
 	}
 	
-	protected void initRuntimeTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuRuntime(Dropdown toolsDropdown) {
 		if (reSecurity.isEntryAdmin()) {
 			ordersLink = LinkFactory.createToolLink("bookings", translate("details.orders"), this, "o_sel_repo_booking");
 			ordersLink.setIconLeftCSS("o_icon o_icon-fw o_icon_booking");
@@ -418,7 +422,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		}
 	}
 	
-	protected void initEditionTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuEdition(Dropdown toolsDropdown) {
 		boolean copyManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.copy);
 		boolean canCopy = (isAuthor || reSecurity.isEntryAdmin()) && (re.getCanCopy() || reSecurity.isEntryAdmin()) && !copyManaged;
 		
@@ -449,7 +453,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		}
 	}
 	
-	protected void initDeleteTools(Dropdown toolsDropdown) {
+	protected void initToolsMenuDelete(Dropdown toolsDropdown) {
 		if(reSecurity.isEntryAdmin()) {
 			boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.delete);
 			toolsDropdown.addComponent(new Spacer("close-delete"));
@@ -538,6 +542,31 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		//
 	}
 	
+	protected void processReloadSettingsEvent(ReloadSettingsEvent event) {
+		if(event.isChangedTitle()) {
+			RepositoryEntry entry = repositoryService.loadByKey(getRepositoryEntry().getKey());
+			refreshRepositoryEntry(entry);
+			handler.onDescriptionChanged(entry);
+			// update name of root bread crumb and opened tabs in top nav in case the title has been modified
+			if (!toolbarPanel.getBreadCrumbs().isEmpty()) {					
+				String newTitle = entry.getDisplayname();
+				String oldTitle = toolbarPanel.getBreadCrumbs().get(0).getCustomDisplayText();
+				if (!newTitle.equals(oldTitle)) {						
+					// 1: update breadcrumb in toolbar
+					toolbarPanel.getBreadCrumbs().get(0).setCustomDisplayText(newTitle);
+					// 2: update dynamic tab in topnav
+					OLATResourceable reOres = OresHelper.clone(entry);
+					getWindowControl().getWindowBackOffice().getWindow().getDTabs().updateDTabTitle(reOres, newTitle);
+				}
+			}
+		} else if(event.isChangedToolbar()) {
+			RepositoryEntry entry = repositoryService.loadByKey(getRepositoryEntry().getKey());
+			refreshRepositoryEntry(entry);
+			initToolsMenu(tools);
+		}
+		settingsChanged = true;
+	}
+	
 	protected void processEntryChangedEvent(EntryChangedEvent repoEvent) {
 		if(repoEvent.isMe(getIdentity()) &&
 				(repoEvent.getChange() == Change.addBookmark || repoEvent.getChange() == Change.removeBookmark)) {
@@ -623,28 +652,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 			} else if(event == Event.CLOSE_EVENT) {
 				doClose(ureq);
 			} else if(event instanceof ReloadSettingsEvent) {
-				settingsChanged = true;
-				initToolbar(tools);
-			}
-		} else if(descriptionCtrl == source) {
-			if(event == Event.CHANGED_EVENT) {
-				RepositoryEntry entry = descriptionCtrl.getRepositoryEntry();
-				refreshRepositoryEntry(entry);
-				handler.onDescriptionChanged(entry);
-				// update name of root bread crumb and opened tabs in top nav in case the title has been modified
-				if (!toolbarPanel.getBreadCrumbs().isEmpty()) {					
-					String newTitle = entry.getDisplayname();
-					String oldTitle = toolbarPanel.getBreadCrumbs().get(0).getCustomDisplayText();
-					if (!newTitle.equals(oldTitle)) {						
-						// 1: update breadcrumb in toolbar
-						toolbarPanel.getBreadCrumbs().get(0).setCustomDisplayText(newTitle);
-						// 2: update dynamic tab in topnav
-						OLATResourceable reOres = OresHelper.clone(entry);
-						getWindowControl().getWindowBackOffice().getWindow().getDTabs().updateDTabTitle(reOres, newTitle);
-					}
-				}
-			} else if(event == Event.CLOSE_EVENT) {
-				doClose(ureq);
+				processReloadSettingsEvent((ReloadSettingsEvent)event);
 			}
 		} else if(detailsCtrl == source) {
 			if(event instanceof LeavingEvent) {
@@ -701,7 +709,6 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		removeAsListenerAndDispose(confirmDeleteCtrl);
 		removeAsListenerAndDispose(accessController);
 		removeAsListenerAndDispose(confirmCloseCtrl);
-		removeAsListenerAndDispose(descriptionCtrl);
 		removeAsListenerAndDispose(detailsCtrl);
 		removeAsListenerAndDispose(editorCtrl);
 		removeAsListenerAndDispose(ordersCtlr);
@@ -712,7 +719,6 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		confirmDeleteCtrl = null;
 		accessController = null;
 		confirmCloseCtrl = null;
-		descriptionCtrl = null;
 		detailsCtrl = null;
 		editorCtrl = null;
 		ordersCtlr = null;
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
index d1e6ce2540abe8252dc1165f5a570d2d5f26560d..04d34db70b205fe4a836fe72278506eb79e93387 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessController.java
@@ -29,7 +29,6 @@ import org.olat.core.gui.control.controller.BasicController;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.event.MultiUserEvent;
 import org.olat.repository.RepositoryEntry;
-import org.olat.repository.RepositoryEntryStatusEnum;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.RepositoryService;
 import org.olat.repository.controllers.EntryChangedEvent;
@@ -86,7 +85,7 @@ public class AuthoringEditAccessController extends BasicController {
 		if(accessAndBookingCtrl == source) {
 			if(event == Event.DONE_EVENT) {
 				doSaveAccessAndBooking(ureq);
-				fireEvent(ureq, new ReloadSettingsEvent());
+				fireEvent(ureq, new ReloadSettingsEvent(true, false, false));
 			} else if(event == Event.CANCELLED_EVENT) {
 				initAccessAndBooking(ureq);
 			}
@@ -125,9 +124,7 @@ public class AuthoringEditAccessController extends BasicController {
 		boolean canReference = authorAccessCtrl.canReference();
 		boolean canDownload = authorAccessCtrl.canDownload();
 		entry = authorAccessCtrl.getEntry();
-		RepositoryEntryStatusEnum status = entry.getEntryStatus();
-		entry = repositoryManager.setAccessAndProperties(entry, status, entry.isAllUsers(), entry.isGuests(),
-				canCopy, canReference, canDownload);
+		entry = repositoryManager.setAccess(entry, canCopy, canReference, canDownload);
 		
 		// inform anybody interested about this change
 		MultiUserEvent modifiedEvent = new EntryChangedEvent(entry, getIdentity(), Change.modifiedAccess, "authoring");
diff --git a/src/main/java/org/olat/repository/ui/settings/ReloadSettingsEvent.java b/src/main/java/org/olat/repository/ui/settings/ReloadSettingsEvent.java
index 31df6d30ea6dd68b5ff963191e6e4ebd247e2750..45beb4003986172c3687d5382387a3003adea06c 100644
--- a/src/main/java/org/olat/repository/ui/settings/ReloadSettingsEvent.java
+++ b/src/main/java/org/olat/repository/ui/settings/ReloadSettingsEvent.java
@@ -32,8 +32,30 @@ public class ReloadSettingsEvent extends Event {
 	private static final long serialVersionUID = -6750322705437476311L;
 	public static final String RELOAD_SETTINGS = "reload-settings";
 	
+	private final boolean changedTitle;
+	private final boolean changedToolbar;
+	private final boolean changedToolsMenu;
+	
 	public ReloadSettingsEvent() {
+		this(false, false, false);
+	}
+
+	public ReloadSettingsEvent(boolean changedToolsMenu, boolean changedToolbar, boolean changedTitle) {
 		super(RELOAD_SETTINGS);
+		this.changedTitle = changedTitle;
+		this.changedToolbar = changedToolbar;
+		this.changedToolsMenu = changedToolsMenu;
+	}
+
+	public boolean isChangedTitle() {
+		return changedTitle;
 	}
 
+	public boolean isChangedToolsMenu() {
+		return changedToolsMenu;
+	}
+	
+	public boolean isChangedToolbar() {
+		return changedToolbar;
+	}
 }
diff --git a/src/main/java/org/olat/repository/ui/settings/RepositoryEntryInfoController.java b/src/main/java/org/olat/repository/ui/settings/RepositoryEntryInfoController.java
index 394cf069199a7b0aaff7b5e9b75966f71c73b9da..bfa538d6b0c1f870b2dcb067193cf7e4c718af49 100644
--- a/src/main/java/org/olat/repository/ui/settings/RepositoryEntryInfoController.java
+++ b/src/main/java/org/olat/repository/ui/settings/RepositoryEntryInfoController.java
@@ -371,7 +371,7 @@ public class RepositoryEntryInfoController extends FormBasicController {
 			showWarning("repositoryentry.not.existing");
 			fireEvent(ureq, Event.CLOSE_EVENT);
 		} else {
-			fireEvent(ureq, Event.CHANGED_EVENT);
+			fireEvent(ureq, new ReloadSettingsEvent(false, false, true));
 			MultiUserEvent modifiedEvent = new EntryChangedEvent(repositoryEntry, getIdentity(), Change.modifiedDescription, "authoring");
 			CoordinatorManager.getInstance().getCoordinator().getEventBus()
 				.fireEventToListenersOf(modifiedEvent, RepositoryService.REPOSITORY_EVENT_ORES);
diff --git a/src/main/java/org/olat/upgrade/OLATUpgrade_13_0_0_beta9.java b/src/main/java/org/olat/upgrade/OLATUpgrade_13_0_0_beta9.java
index f10769fd92454ab90037a00282d284fb914d5a1a..7d21fc8ebae9c5aede38c5d965ccf734e645e9ac 100644
--- a/src/main/java/org/olat/upgrade/OLATUpgrade_13_0_0_beta9.java
+++ b/src/main/java/org/olat/upgrade/OLATUpgrade_13_0_0_beta9.java
@@ -109,8 +109,9 @@ public class OLATUpgrade_13_0_0_beta9 extends OLATUpgrade {
 	
 	private void migrateBookableFlag(Long entrykey) {
 		RepositoryEntry entry = repositoryService.loadByKey(entrykey);
-		if(!entry.isBookable()) {
+		if(!entry.isBookable() && entry.isAllUsers()) {
 			OLATResource resource = entry.getOlatResource();
+			// need at least one "not deleted" offer
 			boolean bookable = acService.isResourceAccessControled(resource, null);
 			if(bookable != entry.isBookable()) {
 				entry.setBookable(bookable);
diff --git a/src/test/java/org/olat/selenium/BusinessGroupTest.java b/src/test/java/org/olat/selenium/BusinessGroupTest.java
index 98d2ceacfd43da437715c97ff7a0b6ecf5535a48..6fd3e734dfe7b8bcfac50c52a8500fcf3db095ae 100644
--- a/src/test/java/org/olat/selenium/BusinessGroupTest.java
+++ b/src/test/java/org/olat/selenium/BusinessGroupTest.java
@@ -311,7 +311,8 @@ public class BusinessGroupTest extends Deployments {
 			.openAddDropMenu()
 			.addTokenMethod()
 			.configureTokenMethod(token, description)
-			.assertOnToken(token);
+			.assertOnToken(token)
+			.save();
 		
 		//members see members
 		group = GroupPage.getGroup(browser)
diff --git a/src/test/java/org/olat/selenium/page/group/GroupPage.java b/src/test/java/org/olat/selenium/page/group/GroupPage.java
index 8d0bd6edab702abe93afb8846cb5879b7ff4c5d0..adb5bdde2c1a7bec8d6c1e9ae785669ba497d0f4 100644
--- a/src/test/java/org/olat/selenium/page/group/GroupPage.java
+++ b/src/test/java/org/olat/selenium/page/group/GroupPage.java
@@ -204,21 +204,21 @@ public class GroupPage {
 			By showOwnersBy = By.cssSelector(".o_sel_group_show_owners input[type='checkbox']");
 			browser.findElement(showOwnersBy).click();
 			OOGraphene.waitBusy(browser);
-			OOGraphene.waitElement(memberMenuItem, 5, browser);
+			OOGraphene.waitElement(memberMenuItem, browser);
 		}
 		
 		if(participants) {
 			By showParticipants = By.cssSelector(".o_sel_group_show_participants input[type='checkbox']");
 			browser.findElement(showParticipants).click();
 			OOGraphene.waitBusy(browser);
-			OOGraphene.waitElement(memberMenuItem, 5, browser);
+			OOGraphene.waitElement(memberMenuItem, browser);
 		}
 		
 		if(waitingList) {
 			By showWaitingListBy = By.cssSelector(".o_sel_group_show_waiting_list input[type='checkbox']");
 			browser.findElement(showWaitingListBy).click();
 			OOGraphene.waitBusy(browser);
-			OOGraphene.waitElement(memberMenuItem, 5, browser);
+			OOGraphene.waitElement(memberMenuItem, browser);
 		}
 		return this;
 	}
@@ -245,8 +245,7 @@ public class GroupPage {
 	 */
 	public GroupPage saveDetails() {
 		By submitBy = By.cssSelector(".o_sel_group_edit_group_form button.btn-primary");
-		WebElement submitButton = browser.findElement(submitBy);
-		submitButton.click();
+		browser.findElement(submitBy).click();
 		OOGraphene.waitBusy(browser);
 		return this;
 	}