diff --git a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
index ba730ba41c02bce3bf3335b46f15d350981e8630..6bafab4aa632143b64286b222c2abcee29f5c4e9 100644
--- a/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
+++ b/src/main/java/de/tuchemnitz/wizard/workflows/coursecreation/CourseCreationHelper.java
@@ -273,7 +273,7 @@ public class CourseCreationHelper {
 			
 			CourseAccessAndProperties accessAndProps = courseConfig.getAccessAndProperties();	
 			
-			addedEntry = repositoryManager.setAccess(accessAndProps.getRepositoryEntry(), accessAndProps.getStatus(),
+			addedEntry = repositoryManager.setAccess(accessAndProps.getRepositoryEntry(),
 					 accessAndProps.isAllUsers(), accessAndProps.isGuests(), accessAndProps.isBookable(),
 					 accessAndProps.getSetting(), accessAndProps.getOrganisations());
 			
diff --git a/src/main/java/org/olat/course/editor/PublishProcess.java b/src/main/java/org/olat/course/editor/PublishProcess.java
index deceb7be7fb4fe7276dd5ba14f9ed448fe0d829d..ce03083736cea3f0dce2bdf4bc2da05c9a0caaf3 100644
--- a/src/main/java/org/olat/course/editor/PublishProcess.java
+++ b/src/main/java/org/olat/course/editor/PublishProcess.java
@@ -704,7 +704,7 @@ public class PublishProcess {
 		
 		RepositoryEntry entry = accessAndProps.getRepositoryEntry();
 		
-		entry = manager.setAccess(entry,  accessAndProps.getStatus(),
+		entry = manager.setAccess(entry,
 				accessAndProps.isAllUsers(), accessAndProps.isGuests(), accessAndProps.isBookable(),
 				accessAndProps.getSetting(), accessAndProps.getOrganisations());
 		
diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java
index 313a27cef016d83b1b138b0c67402fcafe2ab96a..42900b3b909ab7a7e26e91551c6363fde959359e 100644
--- a/src/main/java/org/olat/course/run/CourseRuntimeController.java
+++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java
@@ -982,15 +982,12 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 			if (event == RepositoryEntryLifeCycleChangeController.deletedEvent) {
 				doClose(ureq);
 				cleanUp();	
-			} else if (event == RepositoryEntryLifeCycleChangeController.closedEvent
-					|| event == RepositoryEntryLifeCycleChangeController.unclosedEvent) {
-				processClosedUnclosedEvent(ureq);
 			}
 		} else if (currentToolCtr == source) {
 			if (event == Event.DONE_EVENT) {
 				// special check for editor
 				toolControllerDone(ureq);
-			} 
+			}
 		}  else if(source == leaveDialogBox) {
 			if (event.equals(Event.DONE_EVENT)) {
 				doLeave(ureq);
@@ -1717,12 +1714,9 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im
 		}
 	}
 	
-	private void processClosedUnclosedEvent(UserRequest ureq) {
-		loadRepositoryEntry();
-		reSecurity = repositoryManager.isAllowed(getIdentity(), roles, getRepositoryEntry());
-		loadRights(reSecurity);
-		toolbarPanel.popUpToRootController(ureq);
-		initToolbar();
+	@Override
+	protected void processClosedUnclosedEvent(UserRequest ureq) {
+		super.processClosedUnclosedEvent(ureq);
 		
 		RunMainController runCtrl = getRunMainController();
 		if(runCtrl != null && runCtrl.getCurrentCourseNode() != null) {
diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index 1de7e03b4a1b382a960bb75241f500f4da715a6b..132e38980e66c10f3f6e8f53e367027d9ba8e40c 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -668,14 +668,12 @@ public class RepositoryManager {
 	}
 	
 	
-	public RepositoryEntry setAccess(final RepositoryEntry re, RepositoryEntryStatusEnum status,
-			boolean allUsers, boolean guests, boolean bookable,
+	public RepositoryEntry setAccess(final RepositoryEntry re, boolean allUsers, boolean guests, boolean bookable,
 			RepositoryEntryAllowToLeaveOptions leaveSetting, List<Organisation> organisations) {
 		RepositoryEntry reloadedRe = repositoryEntryDao.loadForUpdate(re);
 		if(reloadedRe == null) {
 			return null;
 		}
-		reloadedRe.setEntryStatus(status);
 		reloadedRe.setAllUsers(allUsers);
 		reloadedRe.setGuests(guests);
 		reloadedRe.setBookable(bookable);
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
index 3c3194fde70333f4a0a69fbdc7ae72f8ca7cd2f2..b5b364f9ee80b73deac69e31d8d4bb0a05de0649 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -291,7 +291,7 @@ details.label.score=Punkte
 details.label.status=Status
 details.launch=Inhalt anzeigen
 details.layout=Layout
-details.lifecycle.change=Lebenszyklus\: beenden/l\u00f6schen
+details.lifecycle.change=L\u00F6schen
 details.members=Mitgliederverwaltung
 details.metadata=Metadaten
 details.metadata.title=$\:details.metadata
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 6a3194c7569558dc6a3ea5fc2ece3b0f5a2176c3..9adeb7026461e0512b2f5a38c26b740d759b9239 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -291,7 +291,7 @@ details.label.score=Score
 details.label.status=Status
 details.launch=Show content
 details.layout=Layout
-details.lifecycle.change=Life cycle\: finish/delete
+details.lifecycle.change=Delete
 details.members=Members management
 details.metadata=Metadata
 details.metadata.title=$\:details.metadata
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties
index ae707defc403a571eae9595c38898ed1540ba7a5..f954fc14589f8c2b042cc806fba47cd24ab302df 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_fr.properties
@@ -291,7 +291,7 @@ details.label.score=Points
 details.label.status=Status
 details.launch=Afficher
 details.layout=Agencement
-details.lifecycle.change=Cycle de vie\: terminer / effacer
+details.lifecycle.change=Effacer
 details.members=Administration des membres
 details.metadata=M\u00E9tadonn\u00E9es
 details.metadata.title=$\:details.metadata
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
index 90f5720bb6f62cdce7d41d69518fce42f4fd367d..ad4fd556877252b3371f6d859f99df471ed9c857 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_it.properties
@@ -225,7 +225,7 @@ details.label.recent=Ultima visita
 details.label.score=Punteggio
 details.label.status=Stato
 details.launch=Mostrare contenuto
-details.lifecycle.change=Ciclo di vita\: disattivare/eliminare
+details.lifecycle.change=Eliminare
 details.members=Gestione dei membri
 details.noreferenceinfo=Non viene utilizzata in alcun corso.
 details.notypeinfo=Nessuna informazione tipologica disponibile.
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_pt_BR.properties
index bf243222465f2071d68b8e116c50850c322968f2..a03c67e93801ae1917163bb97e6e7be608204e0d 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_pt_BR.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_pt_BR.properties
@@ -291,7 +291,7 @@ details.label.score=Pontua\u00E7\u00E3o
 details.label.status=Status
 details.launch=Exibir
 details.layout=Layout
-details.lifecycle.change=Ciclo de vida\: desativar/excluir
+details.lifecycle.change=Excluir
 details.members=Administrar membros
 details.metadata=Metadados
 details.metadata.title=$\:details.metadata
diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntryLifeCycleChangeController.java b/src/main/java/org/olat/repository/ui/RepositoryEntryLifeCycleChangeController.java
index 6808b4555087cace32b4dee4b82f166a4d2975f7..f12caf4bffbd218637e137fb02ac614092f44e23 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryEntryLifeCycleChangeController.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryEntryLifeCycleChangeController.java
@@ -34,22 +34,18 @@ 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.CloseableModalController;
-import org.olat.core.gui.control.generic.modal.DialogBoxController;
-import org.olat.core.gui.control.generic.modal.DialogBoxUIFactory;
 import org.olat.core.logging.OLATSecurityException;
 import org.olat.core.util.Formatter;
 import org.olat.core.util.Util;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryLifeCycleValue;
 import org.olat.repository.RepositoryEntryManagedFlag;
-import org.olat.repository.RepositoryEntryStatusEnum;
 import org.olat.repository.RepositoryModule;
 import org.olat.repository.RepositoryService;
 import org.olat.repository.controllers.EntryChangedEvent;
 import org.olat.repository.controllers.EntryChangedEvent.Change;
 import org.olat.repository.handlers.RepositoryHandler;
 import org.olat.repository.model.RepositoryEntrySecurity;
-import org.olat.repository.ui.author.ConfirmCloseController;
 import org.olat.repository.ui.author.ConfirmDeleteSoftlyController;
 import org.springframework.beans.factory.annotation.Autowired;
 
@@ -68,23 +64,19 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 	public static final Event deletedEvent = new Event("deleted");
 	public static final Event unclosedEvent = new Event("unclosed");
 	
-	private Link closeLink, uncloseLink, deleteLink;
+	private Link deleteLink;
 	private VelocityContainer lifeCycleVC;
 
 	private RepositoryEntry re;
 	private final RepositoryEntrySecurity reSecurity;
 	
 	private CloseableModalController cmc;
-	private DialogBoxController confirmUncloseCtrl;
-	private ConfirmCloseController confirmCloseCtrl;
 	private ConfirmDeleteSoftlyController confirmDeleteCtrl;
 
 	@Autowired
 	private DB dbInstance;
 	@Autowired
 	private RepositoryModule repositoryModule;
-	@Autowired
-	private RepositoryService repositoryService;
 	
 	public RepositoryEntryLifeCycleChangeController(UserRequest ureq, WindowControl wControl, RepositoryEntry re, RepositoryEntrySecurity reSecurity, RepositoryHandler handler) {
 		super(ureq, wControl);
@@ -94,27 +86,6 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 		
 		lifeCycleVC = createVelocityContainer("lifecycle_change");
 		putInitialPanel(lifeCycleVC);
-		
-		boolean isClosed = re.getEntryStatus() == RepositoryEntryStatusEnum.closed;
-		boolean closeManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.close);
-		if (!closeManaged) {
-			closeLink = LinkFactory.createButton("close", lifeCycleVC, this);
-			closeLink.setCustomDisplayText(translate("details.close.ressoure"));
-			closeLink.setIconLeftCSS("o_icon o_icon-fw o_icon_close_resource");
-			closeLink.setElementCssClass("o_sel_repo_close");
-			closeLink.setVisible(!isClosed);
-			
-			uncloseLink = LinkFactory.createButton("unclose", lifeCycleVC, this);
-			uncloseLink.setCustomDisplayText(translate("details.unclose.resource"));
-			uncloseLink.setElementCssClass("o_sel_repo_unclose");
-			uncloseLink.setVisible(isClosed);
-
-			RepositoryEntryLifeCycleValue autoCloseVal = repositoryModule.getLifecycleAutoCloseValue();
-			if(autoCloseVal != null && re.getLifecycle() != null && re.getLifecycle().getValidTo() != null) {
-				Date autoCloseDate = autoCloseVal.toDate(re.getLifecycle().getValidTo());
-				lifeCycleVC.contextPut("autoCloseDate", Formatter.getInstance(getLocale()).formatDate(autoCloseDate));
-			}
-		}
 
 		boolean deleteManaged = RepositoryEntryManagedFlag.isManaged(re, RepositoryEntryManagedFlag.delete);
 		if (!deleteManaged) {
@@ -136,10 +107,6 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if (source == deleteLink) {
 			doDelete(ureq);
-		} else if (source == closeLink) {
-			doConfirmCloseResource(ureq);
-		} else if (source == uncloseLink) {
-			doConfirmUncloseResource(ureq);
 		}
 	}
 	
@@ -156,27 +123,6 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 				EntryChangedEvent e = new EntryChangedEvent(re, getIdentity(), Change.deleted, "runtime");
 				ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
 			}
-		} else if(confirmCloseCtrl == source) {
-			cmc.deactivate();
-			if(event == Event.CANCELLED_EVENT) {
-				cleanUp();
-			} else if (event == Event.DONE_EVENT || event == Event.CHANGED_EVENT) {
-				cleanUp();
-				dbInstance.commit();//commit before sending events
-				doCloseResource();
-				fireEvent(ureq, closedEvent);
-				EntryChangedEvent e = new EntryChangedEvent(re, getIdentity(), Change.closed, "runtime");
-				ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
-			}
-		} else if(confirmUncloseCtrl == source) {
-			if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
-				cleanUp();
-				doUncloseResource();
-				dbInstance.commit();//commit before sending events
-				fireEvent(ureq, unclosedEvent);
-				EntryChangedEvent e = new EntryChangedEvent(re, getIdentity(), Change.unclosed, "runtime");
-				ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
-			}
 		} else if(cmc == source) {
 			cleanUp();
 		} 
@@ -184,61 +130,11 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 	
 	private void cleanUp() {
 		removeAsListenerAndDispose(confirmDeleteCtrl);
-		removeAsListenerAndDispose(confirmCloseCtrl);
 		removeAsListenerAndDispose(cmc);
 		confirmDeleteCtrl = null;
-		confirmCloseCtrl = null;
 		cmc = null;
 	}
 	
-	private void doConfirmCloseResource(UserRequest ureq) {
-		if (!reSecurity.isEntryAdmin()) {
-			throw new OLATSecurityException("Trying to close, but not allowed: user = " + ureq.getIdentity());
-		}
-
-		List<RepositoryEntry> entryToClose = Collections.singletonList(re);
-		confirmCloseCtrl = new ConfirmCloseController(ureq, getWindowControl(), entryToClose);
-		listenTo(confirmCloseCtrl);
-		
-		String title = translate("read.only.header", re.getDisplayname());
-		cmc = new CloseableModalController(getWindowControl(), "close", confirmCloseCtrl.getInitialComponent(), true, title);
-		listenTo(cmc);
-		cmc.activate();
-	}
-	
-	/**
-	 * Remove close and edit tools, if in edit mode, pop-up-to root
-	 * @param ureq
-	 */
-	private void doCloseResource() {
-		re = repositoryService.loadByKey(re.getKey());
-		closeLink.setVisible(false);
-		uncloseLink.setVisible(true);
-		lifeCycleVC.setDirty(true);
-	}
-	
-	private void doConfirmUncloseResource(UserRequest ureq) {
-		if (!reSecurity.isEntryAdmin()) {
-			throw new OLATSecurityException("Trying to reactivate, but not allowed: user = " + ureq.getIdentity());
-		}
-		
-		String title = translate("warning.unclose.title");
-		String text = translate("warning.unclose.text");
-		confirmUncloseCtrl = activateOkCancelDialog(ureq, title, text, confirmUncloseCtrl);
-	}
-	
-	/**
-	 * Remove close and edit tools, if in edit mode, pop-up-to root
-	 * @param ureq
-	 */
-	private void doUncloseResource() {
-		re = repositoryService.uncloseRepositoryEntry(re);
-		closeLink.setVisible(true);
-		uncloseLink.setVisible(false);
-		lifeCycleVC.setDirty(true);
-	}
-
-	
 	private void doDelete(UserRequest ureq) {
 		if (!reSecurity.isEntryAdmin()) {
 			throw new OLATSecurityException("Trying to delete, but not allowed: user = " + ureq.getIdentity());
@@ -258,5 +154,4 @@ public class RepositoryEntryLifeCycleChangeController extends BasicController{
 	protected void doDispose() {
 		// nothing to dispose
 	}
-
 }
diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
index ce1f97877beda6f67173c6c70232518bab7a15e5..80298bd853e10bcd499f31f5873dbc29e8fc07d7 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryEntryRuntimeController.java
@@ -324,6 +324,8 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 			initStatus(status);
 			toolbarPanel.addTool(status, Align.left, false);
 		}
+		
+		toolbarPanel.setDirty(true);
 	}
 	
 	protected void reloadStatus() {
@@ -544,6 +546,14 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		//
 	}
 	
+	protected void processClosedUnclosedEvent(UserRequest ureq) {
+		loadRepositoryEntry();
+		reSecurity = repositoryManager.isAllowed(getIdentity(), roles, getRepositoryEntry());
+		loadRights(reSecurity);
+		toolbarPanel.popUpToRootController(ureq);
+		initToolbar();
+	}
+	
 	protected void processReloadSettingsEvent(ReloadSettingsEvent event) {
 		if(event.isChangedTitle()) {
 			RepositoryEntry entry = repositoryService.loadByKey(getRepositoryEntry().getKey());
@@ -611,13 +621,13 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		} else if(deleteLink == source) {
 			doDelete(ureq);
 		} else if(preparationLink == source) {
-			doChangeStatus(RepositoryEntryStatusEnum.preparation);
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.preparation);
 		} else if(reviewLink == source) {
-			doChangeStatus(RepositoryEntryStatusEnum.review);
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.review);
 		} else if(coachPublishLink == source) {
-			doChangeStatus(RepositoryEntryStatusEnum.coachpublished);
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.coachpublished);
 		} else if(publishLink == source) {
-			doChangeStatus(RepositoryEntryStatusEnum.published);
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.published);
 		} else if(closeLink == source) {
 			doConfirmCloseResource(ureq);
 		} else if(source == toolbarPanel) {
@@ -631,7 +641,10 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 	
 	protected void processPopEvent(@SuppressWarnings("unused") UserRequest ureq, PopEvent pop) {
 		if(pop.getController() == settingsCtrl && settingsChanged) {
-			refreshRepositoryEntry(repositoryService.loadByKey(getRepositoryEntry().getKey()));
+			RepositoryEntry entry = repositoryService.loadByKey(getRepositoryEntry().getKey());
+			refreshRepositoryEntry(entry);
+			reSecurity = repositoryManager.isAllowed(ureq, entry);
+			loadRights(reSecurity);
 			initToolbar();// add/remove lectures link from the toolbar
 			settingsChanged = false;
 		}
@@ -654,11 +667,16 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 			}
 		} else if(settingsCtrl == source) {
 			if(event == Event.CHANGED_EVENT) {
-				
+				//
 			} else if(event == Event.CLOSE_EVENT) {
 				doClose(ureq);
 			} else if(event instanceof ReloadSettingsEvent) {
 				processReloadSettingsEvent((ReloadSettingsEvent)event);
+			} else if(event instanceof ReloadSettingsEvent) {
+				processReloadSettingsEvent((ReloadSettingsEvent)event);
+			} else if (event == RepositoryEntryLifeCycleChangeController.closedEvent
+					|| event == RepositoryEntryLifeCycleChangeController.unclosedEvent) {
+				processClosedUnclosedEvent(ureq);
 			}
 		} else if(detailsCtrl == source) {
 			if(event instanceof LeavingEvent) {
@@ -754,11 +772,16 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 		cleanUp();
 	}
 	
-	protected final void doChangeStatus(RepositoryEntryStatusEnum updatedStatus) {
+	protected final void doChangeStatus(UserRequest ureq, RepositoryEntryStatusEnum updatedStatus) {
 		RepositoryEntry entry = getRepositoryEntry();
 		RepositoryEntry reloadedEntry = repositoryManager.setStatus(entry, updatedStatus);
 		refreshRepositoryEntry(reloadedEntry);
+		reSecurity = repositoryManager.isAllowed(ureq, reloadedEntry);
+		loadRights(reSecurity);
 		initToolbar();
+
+		EntryChangedEvent e = new EntryChangedEvent(reloadedEntry, getIdentity(), Change.modifiedAccess, "runtime");
+		ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
 	}
 	
 	private void doConfirmCloseResource(UserRequest ureq) {
@@ -781,7 +804,7 @@ public class RepositoryEntryRuntimeController extends MainLayoutBasicController
 	 * @param ureq
 	 */
 	private void doCloseResource(UserRequest ureq) {
-		doChangeStatus(RepositoryEntryStatusEnum.closed); 
+		doChangeStatus(ureq, RepositoryEntryStatusEnum.closed); 
 		
 		fireEvent(ureq, RepositoryEntryLifeCycleChangeController.closedEvent);
 		EntryChangedEvent e = new EntryChangedEvent(re, getIdentity(), Change.closed, "runtime");
diff --git a/src/main/java/org/olat/repository/ui/RepositoryEntrySettingsController.java b/src/main/java/org/olat/repository/ui/RepositoryEntrySettingsController.java
index a0ff0146f73a367f3e3d1619503a3bc9b9c7f095..a38d538ccb7fd01b515bcccba9007f1c03c87cce 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryEntrySettingsController.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryEntrySettingsController.java
@@ -19,10 +19,12 @@
  */
 package org.olat.repository.ui;
 
+import java.util.Collections;
 import java.util.List;
 
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
+import org.olat.core.gui.components.dropdown.Dropdown;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.panel.Panel;
@@ -30,10 +32,12 @@ import org.olat.core.gui.components.panel.StackedPanel;
 import org.olat.core.gui.components.stack.ButtonGroupComponent;
 import org.olat.core.gui.components.stack.TooledController;
 import org.olat.core.gui.components.stack.TooledStackedPanel;
+import org.olat.core.gui.components.stack.TooledStackedPanel.Align;
 import org.olat.core.gui.control.Controller;
 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.CloseableModalController;
 import org.olat.core.gui.control.generic.dtabs.Activateable2;
 import org.olat.core.id.OrganisationRef;
 import org.olat.core.id.Roles;
@@ -42,8 +46,13 @@ import org.olat.core.id.context.StateEntry;
 import org.olat.core.util.Util;
 import org.olat.core.util.resource.OresHelper;
 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;
+import org.olat.repository.controllers.EntryChangedEvent.Change;
 import org.olat.repository.ui.author.AuthoringEditAccessController;
+import org.olat.repository.ui.author.ConfirmCloseController;
 import org.olat.repository.ui.settings.CatalogSettingsController;
 import org.olat.repository.ui.settings.ReloadSettingsEvent;
 import org.olat.repository.ui.settings.RepositoryEntryInfoController;
@@ -63,12 +72,21 @@ public class RepositoryEntrySettingsController extends BasicController implement
 	private Link accessLink;
 	private Link catalogLink;
 	private Link metadataLink;
+	private Dropdown status;
 	protected final StackedPanel mainPanel;
 	protected final TooledStackedPanel stackPanel;
 	protected final ButtonGroupComponent buttonsGroup = new ButtonGroupComponent("settings");
-	 
+
+	private Link preparationLink;
+	private Link reviewLink;
+	private Link coachPublishLink;
+	private Link publishLink;
+	private Link closeLink;
+	
+	private CloseableModalController cmc;
 	private CatalogSettingsController catalogCtrl;
 	private RepositoryEntryInfoController infoCtrl;
+	private ConfirmCloseController confirmCloseCtrl;
 	private AuthoringEditAccessController accessCtrl;
 	private RepositoryEntryMetadataController metadataCtrl;
 	
@@ -76,6 +94,8 @@ public class RepositoryEntrySettingsController extends BasicController implement
 	protected RepositoryEntry entry;
 	private List<OrganisationRef> organisations;
 	
+	@Autowired
+	private RepositoryManager repositoryManager;
 	@Autowired
 	protected RepositoryService repositoryService;
 	
@@ -85,6 +105,11 @@ public class RepositoryEntrySettingsController extends BasicController implement
 		this.stackPanel = stackPanel;
 		this.entry = entry;
 		mainPanel = putInitialPanel(new Panel("empty"));
+		
+		status = new Dropdown("settings.toolbox.status", "cif.status", false, getTranslator());
+		status.setElementCssClass("o_sel_repository_status");
+		status.setIconCSS("o_icon o_icon_edit");
+		initStatus(status);
 	}
 	
 	public List<OrganisationRef> getOrganisations() {
@@ -97,9 +122,42 @@ public class RepositoryEntrySettingsController extends BasicController implement
 	@Override
 	public void initTools() {
 		initSegments();
+		stackPanel.addTool(status, Align.left, false);
 		stackPanel.addTool(buttonsGroup, true);
 	}
 	
+	private void initStatus(Dropdown statusDropdown) {
+		statusDropdown.removeAllComponents();
+		
+		RepositoryEntryStatusEnum entryStatus = entry.getEntryStatus();
+		statusDropdown.setI18nKey("details.label.status");
+		statusDropdown.setElementCssClass("o_repo_tools_status o_with_labeled");
+		statusDropdown.setIconCSS("o_icon o_icon_repo_status_".concat(entryStatus.name()));
+		statusDropdown.setInnerText(translate(entryStatus.i18nKey()));
+		statusDropdown.setInnerCSS("o_labeled o_repo_status_".concat(entryStatus.name()));
+		
+		if(entryStatus == RepositoryEntryStatusEnum.preparation || entryStatus == RepositoryEntryStatusEnum.review
+				|| entryStatus == RepositoryEntryStatusEnum.coachpublished || entryStatus == RepositoryEntryStatusEnum.published
+				|| entryStatus == RepositoryEntryStatusEnum.closed) {
+			preparationLink = initStatus(statusDropdown, RepositoryEntryStatusEnum.preparation, entryStatus);
+			reviewLink = initStatus(statusDropdown, RepositoryEntryStatusEnum.review, entryStatus);
+			coachPublishLink = initStatus(statusDropdown, RepositoryEntryStatusEnum.coachpublished, entryStatus);
+			publishLink = initStatus(statusDropdown, RepositoryEntryStatusEnum.published, entryStatus);
+			closeLink = initStatus(statusDropdown, RepositoryEntryStatusEnum.closed, entryStatus);
+		}
+		
+		stackPanel.setDirty(true);
+	}
+	
+	private Link initStatus(Dropdown statusDropdown, RepositoryEntryStatusEnum entryStatus, RepositoryEntryStatusEnum currentStatus) {
+		Link statusLink = LinkFactory.createToolLink("status.".concat(entryStatus.name()), translate(entryStatus.i18nKey()), this);
+		statusLink.setIconLeftCSS("o_icon o_icon-fw o_icon_repo_status_".concat(entryStatus.name()));
+		statusLink.setElementCssClass("o_labeled o_repo_status_".concat(entryStatus.name()));
+		statusLink.setVisible(entryStatus != currentStatus);
+		statusDropdown.addComponent(statusLink);
+		return statusLink;
+	}
+	
 	protected void initSegments() {
 		initInfos();
 		initAccessAndBooking();
@@ -160,6 +218,16 @@ public class RepositoryEntrySettingsController extends BasicController implement
 		} else if(catalogLink == source) {
 			cleanUp();
 			doOpenCatalog(ureq);
+		} else if(preparationLink == source) {
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.preparation);
+		} else if(reviewLink == source) {
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.review);
+		} else if(coachPublishLink == source) {
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.coachpublished);
+		} else if(publishLink == source) {
+			doChangeStatus(ureq, RepositoryEntryStatusEnum.published);
+		} else if(closeLink == source) {
+			doConfirmCloseResource(ureq);
 		}
 	}
 
@@ -175,6 +243,17 @@ public class RepositoryEntrySettingsController extends BasicController implement
 			} else if(metadataCtrl == source) {
 				doOpenMetadata(ureq);
 			}
+		} else if(confirmCloseCtrl == source) {
+			if(event == Event.CANCELLED_EVENT ) {
+				cmc.deactivate();
+				cleanUp();
+			} else if(event instanceof EntryChangedEvent) {
+				cmc.deactivate();
+				cleanUp();
+				doCloseResource(ureq);
+			}
+		} else if(cmc == source) {
+			cleanUp();
 		} else if(event == Event.CHANGED_EVENT || event instanceof ReloadSettingsEvent) {
 			fireEvent(ureq, event);
 		}
@@ -187,14 +266,18 @@ public class RepositoryEntrySettingsController extends BasicController implement
 	}
 	
 	protected void cleanUp() {
+		removeAsListenerAndDispose(confirmCloseCtrl);
 		removeAsListenerAndDispose(metadataCtrl);
 		removeAsListenerAndDispose(catalogCtrl);
 		removeAsListenerAndDispose(accessCtrl);
 		removeAsListenerAndDispose(infoCtrl);
+		removeAsListenerAndDispose(cmc);
+		confirmCloseCtrl = null;
 		metadataCtrl = null;
 		catalogCtrl = null;
 		accessCtrl = null;
 		infoCtrl = null;
+		cmc = null;
 	}
 	
 	protected void doOpenInfos(UserRequest ureq) {
@@ -232,4 +315,38 @@ public class RepositoryEntrySettingsController extends BasicController implement
 		mainPanel.setContent(catalogCtrl.getInitialComponent());
 		buttonsGroup.setSelectedButton(catalogLink);
 	}
+	
+	protected final void doChangeStatus(UserRequest ureq, RepositoryEntryStatusEnum updatedStatus) {
+		entry = repositoryManager.setStatus(entry, updatedStatus);
+		initStatus(status);
+		fireEvent(ureq, new ReloadSettingsEvent(true, true, false, false));
+		event(ureq, buttonsGroup.getSelectedButton(), Event.CHANGED_EVENT);
+		
+		EntryChangedEvent e = new EntryChangedEvent(entry, getIdentity(), Change.modifiedAccess, "runtime");
+		ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
+	}
+	
+	private void doConfirmCloseResource(UserRequest ureq) {
+		List<RepositoryEntry> entryToClose = Collections.singletonList(entry);
+		confirmCloseCtrl = new ConfirmCloseController(ureq, getWindowControl(), entryToClose);
+		listenTo(confirmCloseCtrl);
+		
+		String title = translate("read.only.header", entry.getDisplayname());
+		cmc = new CloseableModalController(getWindowControl(), "close", confirmCloseCtrl.getInitialComponent(), true, title);
+		listenTo(cmc);
+		cmc.activate();
+	}
+	
+	/**
+	 * Remove close and edit tools, if in edit mode, pop-up-to root
+	 * @param ureq
+	 */
+	private void doCloseResource(UserRequest ureq) {
+		entry = repositoryService.loadByKey(entry.getKey());
+		// the runtime will pop this controller
+
+		fireEvent(ureq, RepositoryEntryLifeCycleChangeController.closedEvent);
+		EntryChangedEvent e = new EntryChangedEvent(entry, getIdentity(), Change.closed, "runtime");
+		ureq.getUserSession().getSingleUserEventCenter().fireEventToListenersOf(e, RepositoryService.REPOSITORY_EVENT_ORES);
+	}
 }
diff --git a/src/main/java/org/olat/repository/ui/_content/lifecycle_change.html b/src/main/java/org/olat/repository/ui/_content/lifecycle_change.html
index b89b994efc302d643ae824a674d76ebfcc411c92..3e144b7b9a1c277e772f030bb77b63b11db9494f 100644
--- a/src/main/java/org/olat/repository/ui/_content/lifecycle_change.html
+++ b/src/main/java/org/olat/repository/ui/_content/lifecycle_change.html
@@ -3,41 +3,7 @@
 		$r.contextHelpWithWrapper("Course settings#_delete")
 		$r.translate("details.lifecycle.change")
 	</legend>
-
-#if ($r.visible("close"))
-	<h4>$r.translate("details.close.ressoure")</h4>
-	<div class="o_warning">
-		<p>$r.translate("details.close.ressoure.desc")</p>
-		<ul>
-			<li>$r.translate("details.close.ressoure.desc.1")</li>
-			<li>$r.translate("details.close.ressoure.desc.2")</li>
-			<li>$r.translate("details.close.ressoure.desc.3")</li>
-			<li>$r.translate("details.close.ressoure.desc.4")</li>
-		</ul>
-		#if($r.isNotNull($autoCloseDate))
-			<p>$r.translate("details.close.ressoure.auto.desc", $autoCloseDate)</p>
-		#end
-		<div class="o_button_group o_block_large_top">
-			$r.render("close")
-		</div>
-	</div>
-#end
-#if ($r.visible("unclose"))
-	<h4>$r.translate("details.unclose.resource.title")</h4>
-	<div class="o_info">
-		<p>$r.translate("details.unclose.resource.desc")</p>
-		<ul>
-			<li>$r.translate("details.unclose.resource.desc.1")</li>
-			<li>$r.translate("details.unclose.resource.desc.2")</li>
-		</ul>
-		<div class="o_button_group o_block_large_top">
-			$r.render("unclose")
-		</div>
-	</div>
-#end
-
 #if ($r.available("delete"))
-	<h4>$r.translate("details.delete")</h4>
 	<div class="o_error">
 		<p>$r.translate("details.delete.soft.desc")</p>
 		<ul>
@@ -53,5 +19,4 @@
 		</div>
 	</div>
 #end
-	
 </fieldset>
\ No newline at end of file
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java
index c7c28997242d9804d40dcb9252f71a9af12e5ea2..bd7744fe621123f6c1cc8ab7b0fcd7dbbfb5c961 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditAccessAndBookingController.java
@@ -107,7 +107,7 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController
 		setTranslator(Util.createPackageTranslator(RepositoryService.class, getLocale(), getTranslator()));
 		this.entry = entry;
 		embbeded = false;
-		status = true;
+		status = false;
 		initForm(ureq);
 		updateUI();
 	}
@@ -418,7 +418,7 @@ public class AuthoringEditAccessAndBookingController extends FormBasicController
 	public RepositoryEntry commitChanges() {
 		boolean bookable = isBookable();
 		List<Organisation> organisations = getSelectedOrganisations();
-		entry = repositoryManager.setAccess(entry, getEntryStatus(),
+		entry = repositoryManager.setAccess(entry,
 				isAllUsers(), isGuests(), bookable,
 				getSelectedLeaveSetting(), organisations);
 		
diff --git a/src/main/java/org/olat/repository/ui/author/_content/confirm_close.html b/src/main/java/org/olat/repository/ui/author/_content/confirm_close.html
index 16cfc524377fd6c53fd64cef8a5b2e16a97d09bd..3ed97d30b433fd6e247f7b9877b0e04f6dc7074e 100644
--- a/src/main/java/org/olat/repository/ui/author/_content/confirm_close.html
+++ b/src/main/java/org/olat/repository/ui/author/_content/confirm_close.html
@@ -1,4 +1,14 @@
 <div class="o_warning">
+	<p>$r.translate("details.close.ressoure.desc")</p>
+	<ul>
+		<li>$r.translate("details.close.ressoure.desc.1")</li>
+		<li>$r.translate("details.close.ressoure.desc.2")</li>
+		<li>$r.translate("details.close.ressoure.desc.3")</li>
+		<li>$r.translate("details.close.ressoure.desc.4")</li>
+	</ul>
+	#if($r.isNotNull($autoCloseDate))
+		<p>$r.translate("details.close.ressoure.auto.desc", $autoCloseDate)</p>
+	#end
 	<i class="o_icon o_icon-lg o_icon_important"> </i> $r.translate("dialog.confirm.close", $numOfMembers)
 </div>
 $r.render("confirm")
\ No newline at end of file