diff --git a/src/main/java/org/olat/course/site/CourseSiteContextEntryControllerCreator.java b/src/main/java/org/olat/course/site/CourseSiteContextEntryControllerCreator.java
index 74fac109c15b958fdab788fd5559e92450c87895..ce2fae5ff3ce05b30d1b25ef5583e0a7ac1a9048 100644
--- a/src/main/java/org/olat/course/site/CourseSiteContextEntryControllerCreator.java
+++ b/src/main/java/org/olat/course/site/CourseSiteContextEntryControllerCreator.java
@@ -32,6 +32,7 @@ import org.olat.core.gui.control.navigation.SiteDefinition;
 import org.olat.core.gui.control.navigation.SiteDefinitions;
 import org.olat.core.gui.translator.Translator;
 import org.olat.core.id.OLATResourceable;
+import org.olat.core.id.Roles;
 import org.olat.core.id.context.BusinessControlFactory;
 import org.olat.core.id.context.ContextEntry;
 import org.olat.core.id.context.ContextEntryControllerCreator;
@@ -94,6 +95,13 @@ public class CourseSiteContextEntryControllerCreator extends DefaultContextEntry
 		}
 		
 		UserSession usess = ureq.getUserSession();
+		if(re.getAccess() == RepositoryEntry.DELETED) {
+			Roles roles = usess.getRoles();
+			if(!roles.isInstitutionalResourceManager() && !roles.isOLATAdmin()) {
+				return messageController(ureq, wControl, "repositoryentry.deleted");
+			}
+		}
+		
 		if(usess.isInAssessmentModeProcess() && !usess.matchLockResource(re.getOlatResource())) {
 			return null;
 		}
diff --git a/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java b/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java
index 905868dc0d9d5994f7676405096326a0d7f92eac..d25dcc173c99e8625def453c216cad4e36f4bd57 100644
--- a/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java
+++ b/src/main/java/org/olat/modules/reminder/manager/ReminderDAO.java
@@ -128,17 +128,18 @@ public class ReminderDAO {
 	}
 	
 	/**
-	 * Get all reminders of active repository entries.
+	 * Get all reminders of active repository entries (status must be
+	 * open and not "softly" deleted).
 	 * 
 	 * @param startDate
-	 * @return
+	 * @return A list of reminders
 	 */
 	public List<Reminder> getReminders(Date startDate) {
 		StringBuilder sb = new StringBuilder();
 		sb.append("select rem from reminder rem")
 		  .append(" inner join rem.entry entry")
 		  .append(" where (rem.startDate is null or rem.startDate<=:startDate)")
-		  .append(" and entry.statusCode=0");
+		  .append(" and entry.statusCode=0 and entry.access>").append(RepositoryEntry.DELETED);
 
 		return dbInstance.getCurrentEntityManager()
 				.createQuery(sb.toString(), Reminder.class)
@@ -146,6 +147,12 @@ public class ReminderDAO {
 				.getResultList();
 	}
 
+	/**
+	 * Get all reminders without restrictions.
+	 * 
+	 * @param entry
+	 * @return A list of remidners
+	 */
 	public List<Reminder> getReminders(RepositoryEntryRef entry) {
 		String q = "select rem from reminder rem inner join rem.entry entry where entry.key=:entryKey";
 		return dbInstance.getCurrentEntityManager()
diff --git a/src/main/java/org/olat/repository/RepositoryEntryStatus.java b/src/main/java/org/olat/repository/RepositoryEntryStatus.java
index ab875bf55247399ab9962e981daf8958bd334138..5497c5a719224ad1e645ba18c3d18bce3ab10980 100644
--- a/src/main/java/org/olat/repository/RepositoryEntryStatus.java
+++ b/src/main/java/org/olat/repository/RepositoryEntryStatus.java
@@ -35,6 +35,9 @@ package org.olat.repository;
 public class RepositoryEntryStatus {
 
 	public static final int REPOSITORY_STATUS_OPEN = 0;
+	/**
+	 * Correspond to the "freeze" status
+	 */
 	public static final int REPOSITORY_STATUS_CLOSED = 2;
 	public static final int REPOSITORY_STATUS_UNPUBLISHED = 4;
 	
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 7be0516accf22ac92e39827f362b91a3ba155d08..7fac13043046c3b4282e68cad0eaa5dc70060d40 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -418,6 +418,7 @@ repository.admin.leave.label=Standardeinstellung f\u00FCr neue Kurse
 repository.admin.leave.title=Verlassen von Kursen zulassen
 repository.admin.lifecycle.title=Automatische Verwaltung des Lebenszyklus
 repository.admin.title=Repository Einstellungen
+repositoryentry.deleted=Diese Ressource wurde gel\u00F6scht und ist nicht mehr verf\u00FCgbar.
 repositoryentry.not.existing=Diese Ressource ist nicht mehr verf\u00FCgbar.
 resource.editor=Editor
 resource.error.test.xml=Die Lernressource konnte nicht hinzugef\u00FCgt werden. Die qti.xml-Datei konnte nicht geparst werden.
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 0172982a94c71546805e9dd567a183045b307b79..a8eb6ee4f0908cf4b3fe3354eb8dd7546825386d 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -415,6 +415,7 @@ repository.admin.leave.label=Standard setting for new courses
 repository.admin.leave.title=Allow leaving courses
 repository.admin.lifecycle.title=Automatic Life-cycle management
 repository.admin.title=Repository settings
+repositoryentry.deleted=This resource was deleted and is no longer available.
 repositoryentry.not.existing=This resource is no longer available.
 resource.editor=Editor
 resource.error.test.xml=Learning resource could not be added. The qti.xml file could not be parsed.
diff --git a/src/main/java/org/olat/repository/ui/author/AccessRenderer.java b/src/main/java/org/olat/repository/ui/author/AccessRenderer.java
index 83d4f47d9c023197ae64b06b2d532688dd867ff2..1c5130e99753f20585c28961274f36d0b96d557e 100644
--- a/src/main/java/org/olat/repository/ui/author/AccessRenderer.java
+++ b/src/main/java/org/olat/repository/ui/author/AccessRenderer.java
@@ -49,12 +49,13 @@ public class AccessRenderer implements FlexiCellRenderer {
 			int row, FlexiTableComponent source, URLBuilder ubu, Translator translator)  {
 		if(val instanceof RepositoryEntryLight) {
 			RepositoryEntryLight re = (RepositoryEntryLight)val;
-			if(re.isMembersOnly()) {
+			if(re.getAccess() == RepositoryEntry.DELETED) {
+				sb.append(translator.translate("table.header.access.deleted"));
+			} else if(re.isMembersOnly()) {
 				sb.append(translator.translate("table.header.access.membersonly")); 
 			} else {
 				switch (re.getAccess()) {
 					case RepositoryEntry.DELETED: {
-
 						sb.append(translator.translate("table.header.access.deleted"));
 						break;
 					}
diff --git a/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java b/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java
index 9b676a38ede5797f4677067d96b04253200c42c9..38e9d318919e5d8dd2447310b12a12b0ba756600 100644
--- a/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java
+++ b/src/test/java/org/olat/modules/reminder/manager/ReminderDAOTest.java
@@ -35,6 +35,7 @@ import org.olat.modules.reminder.model.ReminderImpl;
 import org.olat.modules.reminder.model.ReminderInfos;
 import org.olat.modules.reminder.model.SentReminderImpl;
 import org.olat.repository.RepositoryEntry;
+import org.olat.repository.RepositoryService;
 import org.olat.repository.manager.RepositoryEntryRelationDAO;
 import org.olat.test.JunitTestHelper;
 import org.olat.test.OlatTestCase;
@@ -53,6 +54,8 @@ public class ReminderDAOTest extends OlatTestCase {
 	@Autowired
 	private ReminderDAO reminderDao;
 	@Autowired
+	private RepositoryService repositoryService;
+	@Autowired
 	private RepositoryEntryRelationDAO repositoryEntryRelationDao;
 	
 	@Test
@@ -140,6 +143,34 @@ public class ReminderDAOTest extends OlatTestCase {
 		}
 		Assert.assertTrue(found);	
 	}
+
+	@Test
+	public void getReminders_repositoryEntry_softDeleted() {
+		//create and reminder and an identity
+		Identity creator = JunitTestHelper.createAndPersistIdentityAsRndUser("creator-rem-12");
+		RepositoryEntry entry = JunitTestHelper.createAndPersistRepositoryEntry();
+		Reminder reminder = reminderDao.createReminder(entry, creator);
+		reminder.setConfiguration("<rules></rules>");
+		reminder.setDescription("Reminder - 12");
+		reminder.setEmailBody("Hello, I'm deleted");
+		Reminder savedReminder = reminderDao.save(reminder);
+		Assert.assertNotNull(savedReminder);
+		dbInstance.commitAndCloseSession();
+		
+		//check that we found the reminder
+		List<Reminder> loadedReminders = reminderDao.getReminders(new Date());
+		Assert.assertNotNull(loadedReminders);
+		Assert.assertTrue(loadedReminders.contains(savedReminder));
+		
+		// delete the resource
+		repositoryService.deleteSoftly(entry, creator, false);
+		dbInstance.commitAndCloseSession();
+		
+		// check we don't found the reminder
+		List<Reminder> reloadedReminders = reminderDao.getReminders(new Date());
+		Assert.assertNotNull(reloadedReminders);
+		Assert.assertFalse(reloadedReminders.contains(savedReminder));
+	}
 	
 	@Test
 	public void getReminders_repositoryEntry() {