diff --git a/src/main/java/org/olat/repository/RepositoryEntryAuthorView.java b/src/main/java/org/olat/repository/RepositoryEntryAuthorView.java
index dc6f98d9dbb8b922c4a0999fa45e5ef8c2eba898..3bb215877d45449fe5065e21c5589b4f59d1818b 100644
--- a/src/main/java/org/olat/repository/RepositoryEntryAuthorView.java
+++ b/src/main/java/org/olat/repository/RepositoryEntryAuthorView.java
@@ -53,6 +53,8 @@ public interface RepositoryEntryAuthorView extends OLATResourceable, RepositoryE
 	
 	public RepositoryEntryLifecycle getLifecycle();
 	
+	public int getNumOfReferences();
+	
 	public Date getDeletionDate();
 	
 	public String getDeletedByFullName();
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 6b98813ae1005e84cf532ff04ca7458ddea62921..201a66dbf3310db643adbc1245c746f3b7750d7b 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -135,6 +135,10 @@ cif.membership.mandatory=Meine Kurse
 cif.objectives=Lernziele
 cif.ores_id=OpenOLAT-Ressourcen-ID
 cif.owned.resources.only=Meine Ressourcen
+cif.owned.resources.usage=Referenzierte Ressourcen
+cif.owned.resources.usage.all=Alle
+cif.owned.resources.usage.used=Referenziert
+cif.owned.resources.usage.notUsed=Nicht referenziert
 cif.owners=Autoren
 cif.private.dates=Datum
 cif.public.dates=Semester
@@ -545,6 +549,7 @@ table.header.mark=<i class\="o_icon o_icon_bookmark_header o_icon-lg" title\="Fa
 table.header.online=$org.olat.group.ui.main\:table.header.online
 table.header.participants=$org.olat.group.ui.main\:table.header.participants
 table.header.participantsCount=$org.olat.group.ui.main\:table.header.participantsCount
+table.header.references=Ref.
 table.header.remove=$org.olat.group.ui.main\:table.header.remove
 table.header.role=$org.olat.group.ui.main\:table.header.role
 table.header.start=Starten
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 a35e1a54d8748bfca30d2ae74aa489c39be7c38c..35cafd4371d8638bd38325f0abc3fb51a20588f2 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -130,7 +130,11 @@ cif.managedflags=Externally managed modules
 cif.membership.mandatory=My courses only
 cif.objectives=Objectives
 cif.ores_id=OpenOLAT resource ID
-cif.owned.resources.only=My ressources
+cif.owned.resources.only=My resources
+cif.owned.resources.usage=Referenced resources
+cif.owned.resources.usage.all=All
+cif.owned.resources.usage.used=Referenced
+cif.owned.resources.usage.notUsed=Not referenced
 cif.owners=Authoring rights
 cif.private.dates=Dates
 cif.public.dates=Semester
@@ -542,6 +546,7 @@ table.header.mark=<i class\="o_icon o_icon_bookmark_header o_icon-lg" title\="Bo
 table.header.online=$org.olat.group.ui.main\:table.header.online
 table.header.participants=$org.olat.group.ui.main\:table.header.participants
 table.header.participantsCount=$org.olat.group.ui.main\:table.header.participantsCount
+table.header.references=Ref.
 table.header.remove=$org.olat.group.ui.main\:table.header.remove
 table.header.role=$org.olat.group.ui.main\:table.header.role
 table.header.start=Launch
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
index 4e5acd1b6f4ef3a24a4a81b19abb0cff86e1657e..2edefad11175b7c9dbef9f6a984c1f369a9a984c 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryAuthorQueries.java
@@ -41,6 +41,7 @@ import org.olat.repository.RepositoryEntryAuthorView;
 import org.olat.repository.model.RepositoryEntryAuthorImpl;
 import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams;
 import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.OrderBy;
+import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.ResourceUsage;
 import org.olat.user.UserImpl;
 import org.olat.user.UserManager;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -97,6 +98,9 @@ public class RepositoryEntryAuthorQueries {
 			Number numOffers = (Number)object[2];
 			long offers = numOffers == null ? 0l : numOffers.longValue();
 			
+			Number numOfReferences = (Number)object[3];
+			int references = numOfReferences == null ? 0 : numOfReferences.intValue();
+			
 			String deletedByName = null;
 			if(params.isDeleted()) {
 				Identity deletedBy = re.getDeletedBy();
@@ -105,7 +109,7 @@ public class RepositoryEntryAuthorQueries {
 				}
 			}
 			
-			views.add(new RepositoryEntryAuthorImpl(re, hasMarks, offers, deletedByName));
+			views.add(new RepositoryEntryAuthorImpl(re, hasMarks, offers, references, deletedByName));
 		}
 		return views;
 	}
@@ -138,8 +142,11 @@ public class RepositoryEntryAuthorQueries {
 				needIdentity = true;
 			}
 			sb.append(" (select count(offer.key) from acoffer as offer ")
-			  .append("   where offer.resource=res and offer.valid=true")
-			  .append(" ) as offers")
+			  .append("   where offer.resource.key=res.key and offer.valid=true")
+			  .append(" ) as offers,")
+			  .append(" (select count(ref.key) from references as ref ")
+			  .append("   where ref.target.key=res.key")
+			  .append(" ) as references")
 			  .append(" from repositoryentry as v")
 			  .append(" inner join ").append(oracle ? "" : "fetch").append(" v.olatResource as res")
 			  .append(" inner join fetch v.statistics as stats")
@@ -179,6 +186,14 @@ public class RepositoryEntryAuthorQueries {
 			  .append(" ))");
 		}
 		
+		if(params.getResourceUsage() != null && params.getResourceUsage() != ResourceUsage.all) {
+			sb.append(" and res.resName!='CourseModule' and");	
+			if(params.getResourceUsage() == ResourceUsage.notUsed) {
+				sb.append(" not");
+			}
+			sb.append(" exists (select ref.key from references as ref where ref.target.key=res.key)");
+		}
+		
 		if(params.getRepoEntryKeys() != null && params.getRepoEntryKeys().size() > 0) {
 			sb.append(" and v.key in (:repoEntryKeys)");
 		}
@@ -369,6 +384,14 @@ public class RepositoryEntryAuthorQueries {
 						sb.append(" order by offers desc, lower(v.displayname) desc");
 					}
 					break;
+				case references: {
+					if(asc) {
+						sb.append(" order by references asc, lower(v.displayname) asc");
+					} else {
+						sb.append(" order by references desc, lower(v.displayname) desc");
+					}
+					break;
+				}
 				case creationDate:
 					sb.append(" order by v.creationDate ");
 					appendAsc(sb, asc).append(", lower(v.displayname) asc");
diff --git a/src/main/java/org/olat/repository/model/RepositoryEntryAuthorImpl.java b/src/main/java/org/olat/repository/model/RepositoryEntryAuthorImpl.java
index 221d37cbc027a9f07287aa097782f6d212a1cad7..147dbcf98814d3dbedbe93ffaa4c03e580faa94f 100644
--- a/src/main/java/org/olat/repository/model/RepositoryEntryAuthorImpl.java
+++ b/src/main/java/org/olat/repository/model/RepositoryEntryAuthorImpl.java
@@ -56,6 +56,8 @@ public class RepositoryEntryAuthorImpl implements RepositoryEntryAuthorView {
 	
 	private final Date lastUsage;
 	
+	public int numOfReferences;
+	
 	private final Date deletionDate;
 	private final String deletedByFullName;
 	
@@ -66,7 +68,7 @@ public class RepositoryEntryAuthorImpl implements RepositoryEntryAuthorView {
 	
 	private final long offers;
 	
-	public RepositoryEntryAuthorImpl(RepositoryEntry re, boolean marked, long offers, String deletedByFullName) {
+	public RepositoryEntryAuthorImpl(RepositoryEntry re, boolean marked, long offers, int numOfReferences, String deletedByFullName) {
 		key = re.getKey();
 		creationDate = re.getCreationDate();
 		
@@ -87,6 +89,8 @@ public class RepositoryEntryAuthorImpl implements RepositoryEntryAuthorView {
 		
 		lastUsage = re.getStatistics().getLastUsage();
 		
+		this.numOfReferences = numOfReferences;
+		
 		deletionDate = re.getDeletionDate();
 		this.deletedByFullName = deletedByFullName;
 		
@@ -190,6 +194,11 @@ public class RepositoryEntryAuthorImpl implements RepositoryEntryAuthorView {
 		return lifecycle;
 	}
 
+	@Override
+	public int getNumOfReferences() {
+		return numOfReferences;
+	}
+
 	@Override
 	public boolean isMarked() {
 		return marked;
diff --git a/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java b/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java
index 75688f7470cf7a2d84a140a14276a0349ad28180..3549ae151b64a7aff3cc0b56217cd47e9c1ea394 100644
--- a/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java
+++ b/src/main/java/org/olat/repository/model/SearchAuthorRepositoryEntryViewParams.java
@@ -38,6 +38,7 @@ public class SearchAuthorRepositoryEntryViewParams {
 	private Boolean marked;
 	private boolean deleted = false;
 	private boolean ownedResourcesOnly;
+	private ResourceUsage resourceUsage = ResourceUsage.all;
 	
 	private String idAndRefs;
 	private String idRefsAndTitle;
@@ -174,6 +175,14 @@ public class SearchAuthorRepositoryEntryViewParams {
 		this.marked = marked;
 	}
 	
+	public ResourceUsage getResourceUsage() {
+		return resourceUsage;
+	}
+
+	public void setResourceUsage(ResourceUsage resourceUsage) {
+		this.resourceUsage = resourceUsage;
+	}
+
 	public enum OrderBy {
 		key,
 		favorit,
@@ -192,7 +201,14 @@ public class SearchAuthorRepositoryEntryViewParams {
 		lifecycleSoftkey,
 		lifecycleStart,
 		lifecycleEnd,
+		references,
 		deletionDate,
 		deletedBy
 	}
+	
+	public enum ResourceUsage {
+		all,
+		used,
+		notUsed
+	}
 }
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
index 7103a5b0c9ec0d80f088a964314be73899bea9e1..433f3792aa7577d93d766e4ec92f3f109b84dc9c 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -101,8 +101,10 @@ import org.olat.repository.handlers.RepositoryHandlerFactory;
 import org.olat.repository.handlers.RepositoryHandlerFactory.OrderedRepositoryHandler;
 import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams;
 import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.OrderBy;
+import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.ResourceUsage;
 import org.olat.repository.ui.RepositoyUIFactory;
 import org.olat.repository.ui.author.AuthoringEntryDataModel.Cols;
+import org.olat.resource.references.ReferenceManager;
 import org.olat.user.UserManager;
 import org.olat.util.logging.activity.LoggingResourceable;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -132,6 +134,7 @@ public class AuthorListController extends FormBasicController implements Activat
 	private AuthorSearchController searchCtrl;
 	private UserSearchController userSearchCtr;
 	private DialogBoxController copyDialogCtrl;
+	private ReferencesController referencesCtrl;
 	private CopyRepositoryEntryController copyCtrl;
 	private ConfirmCloseController closeCtrl;
 	private ConfirmDeleteSoftlyController confirmDeleteCtrl;
@@ -290,6 +293,9 @@ public class AuthorListController extends FormBasicController implements Activat
 				true, OrderBy.creationDate.name()));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.lastUsage.i18nKey(), Cols.lastUsage.ordinal(),
 				true, OrderBy.lastUsage.name()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(true, Cols.references.i18nKey(), Cols.references.ordinal(),
+				true, OrderBy.references.name()));
+		
 		initActionsColumns(columnsModel);
 		
 		model = new AuthoringEntryDataModel(dataSource, columnsModel);
@@ -466,6 +472,7 @@ public class AuthorListController extends FormBasicController implements Activat
 				searchParams.setDisplayname(null);
 				searchParams.setDescription(null);
 				searchParams.setOwnedResourcesOnly(false);
+				searchParams.setResourceUsage(ResourceUsage.all);
 			}
 		} else if(userSearchCtr == source) {
 			@SuppressWarnings("unchecked")
@@ -488,6 +495,11 @@ public class AuthorListController extends FormBasicController implements Activat
 				toolsCalloutCtrl.deactivate();
 				cleanUp();
 			}
+		}  else if(referencesCtrl == source) {
+			if(event == Event.DONE_EVENT) {
+				toolsCalloutCtrl.deactivate();
+				cleanUp();
+			}
 		} else if(closeCtrl == source) {
 			if(event == Event.CANCELLED_EVENT) {
 				cmc.deactivate();
@@ -588,6 +600,9 @@ public class AuthorListController extends FormBasicController implements Activat
 			} else if("tools".equals(cmd)) {
 				AuthoringEntryRow row = (AuthoringEntryRow)link.getUserObject();
 				doOpenTools(ureq, row, link);
+			} else if("references".equals(cmd)) {
+				AuthoringEntryRow row = (AuthoringEntryRow)link.getUserObject();
+				doOpenReferences(ureq, row, link);
 			}
 		} else if(source == tableEl) {
 			if(event instanceof SelectionEvent) {
@@ -649,6 +664,25 @@ public class AuthorListController extends FormBasicController implements Activat
 		}
 	}
 	
+	private void doOpenReferences(UserRequest ureq, AuthoringEntryRow row, FormLink link) {
+		removeAsListenerAndDispose(toolsCtrl);
+		removeAsListenerAndDispose(toolsCalloutCtrl);
+
+		RepositoryEntry entry = repositoryService.loadByKey(row.getKey());
+		if(entry == null) {
+			tableEl.reloadData();
+			showWarning("repositoryentry.not.existing");
+		} else {
+			referencesCtrl = new ReferencesController(ureq, getWindowControl(), entry);
+			listenTo(referencesCtrl);
+	
+			toolsCalloutCtrl = new CloseableCalloutWindowController(ureq, getWindowControl(),
+					referencesCtrl.getInitialComponent(), link.getFormDispatchId(), "", true, "");
+			listenTo(toolsCalloutCtrl);
+			toolsCalloutCtrl.activate();
+		}
+	}
+	
 	private void doImport(UserRequest ureq) {
 		if(importCtrl != null) return;
 
@@ -720,6 +754,7 @@ public class AuthorListController extends FormBasicController implements Activat
 		searchParams.setIdAndRefs(se.getId());
 		searchParams.setAuthor(se.getAuthor());
 		searchParams.setOwnedResourcesOnly(se.isOwnedResourcesOnly());
+		searchParams.setResourceUsage(se.getResourceUsage());
 		searchParams.setDisplayname(se.getDisplayname());
 		searchParams.setDescription(se.getDescription());
 		tableEl.reset(true, true, true);
@@ -989,6 +1024,13 @@ public class AuthorListController extends FormBasicController implements Activat
 		}
 	}
 	
+	private void launch(UserRequest ureq, RepositoryEntryRef ref) {
+		String businessPath = "[RepositoryEntry:" + ref.getKey() + "]";
+		if(!NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl())) {
+			tableEl.reloadData();
+		}
+	}
+	
 	private void launchCatalog(UserRequest ureq, RepositoryEntryRef ref) {
 		String businessPath = "[RepositoryEntry:" + ref.getKey() + "][Catalog:0]";
 		NewControllerFactory.getInstance().launch(businessPath, ureq, getWindowControl());
@@ -1055,6 +1097,57 @@ public class AuthorListController extends FormBasicController implements Activat
 		toolsLink.setIconLeftCSS("o_icon o_icon_actions o_icon-lg");
 		toolsLink.setUserObject(row);
 		row.setToolsLink(toolsLink);
+		//references
+		if(row.getNumOfReferences() > 0) {
+			String numOfReferences = Integer.toString(row.getNumOfReferences());
+			FormLink referencesLink = uifactory.addFormLink("tools_" + counter.incrementAndGet(), "references", numOfReferences, null, null, Link.NONTRANSLATED);
+			referencesLink.setUserObject(row);
+			row.setReferencesLink(referencesLink);
+		}
+	}
+	
+	private class ReferencesController extends BasicController {
+
+		@Autowired
+		private ReferenceManager referenceManager;
+		
+		public ReferencesController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry) {
+			super(ureq, wControl);
+			setTranslator(AuthorListController.this.getTranslator());
+			VelocityContainer mainVC = createVelocityContainer("references");
+			
+			List<RepositoryEntry> refs = referenceManager.getRepositoryReferencesTo(entry.getOlatResource());
+
+			List<String> refLinks = new ArrayList<>(refs.size());
+			for(RepositoryEntry ref:refs) {
+				String name = "ref-" + counter.incrementAndGet();
+				Link refLink = LinkFactory.createLink(name, "reference", getTranslator(), mainVC, this, Link.NONTRANSLATED);
+				refLink.setCustomDisplayText(StringHelper.escapeHtml(ref.getDisplayname()));
+				refLink.setUserObject(ref);
+				refLink.setIconLeftCSS("o_icon o_icon-fw " + RepositoyUIFactory.getIconCssClass(ref));
+				refLinks.add(name);
+			}
+			mainVC.contextPut("referenceLinks", refLinks);
+			
+			putInitialPanel(mainVC);
+		}
+
+		@Override
+		protected void event(UserRequest ureq, Component source, Event event) {
+			if(source instanceof Link) {
+				fireEvent(ureq, Event.DONE_EVENT);
+				Link link = (Link)source;
+				if("reference".equals(link.getCommand())) {
+					RepositoryEntryRef uobject = (RepositoryEntryRef)link.getUserObject();
+					launch(ureq, uobject);
+				}
+			}
+		}
+
+		@Override
+		protected void doDispose() {
+			//
+		}
 	}
 	
 	private class ToolsController extends BasicController {
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorSearchController.java b/src/main/java/org/olat/repository/ui/author/AuthorSearchController.java
index 50cba0ca9236e865f26392d1fbe3f22a7c08c0ab..de67a19b2b71647ec916b42a4108d1149aa48872 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorSearchController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorSearchController.java
@@ -44,6 +44,7 @@ import org.olat.core.util.Util;
 import org.olat.repository.RepositoryManager;
 import org.olat.repository.handlers.RepositoryHandlerFactory;
 import org.olat.repository.handlers.RepositoryHandlerFactory.OrderedRepositoryHandler;
+import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.ResourceUsage;
 import org.springframework.beans.factory.annotation.Autowired;
 
 /**
@@ -55,12 +56,14 @@ import org.springframework.beans.factory.annotation.Autowired;
 public class AuthorSearchController extends FormBasicController implements ExtendedFlexiTableSearchController {
 
 	private static final String[] keys = new String[]{ "my" };
+	private static final String[] usageKeys = new String[]{ ResourceUsage.all.name(), ResourceUsage.used.name(), ResourceUsage.notUsed.name() };
 	
 	private TextElement id; // only for admins
 	private TextElement displayName;
 	private TextElement author;
 	private TextElement description;
 	private SingleSelection types;
+	private SingleSelection resourceUsageEl;
 	private MultipleSelectionElement ownedResourcesOnlyEl;
 	private FormLink searchButton;
 	
@@ -117,6 +120,14 @@ public class AuthorSearchController extends FormBasicController implements Exten
 		ownedResourcesOnlyEl = uifactory.addCheckboxesHorizontal("cif_my", "cif.owned.resources.only", rightContainer, keys, new String[]{ "" });
 		ownedResourcesOnlyEl.select(keys[0], true);
 		
+		String[] usageValues = new String[] {
+			translate("cif.owned.resources.usage.all"),
+			translate("cif.owned.resources.usage.used"),
+			translate("cif.owned.resources.usage.notUsed")
+		};
+		resourceUsageEl = uifactory.addRadiosHorizontal("cif_used", "cif.owned.resources.usage", rightContainer, usageKeys, usageValues);
+		resourceUsageEl.select(usageKeys[0], true);
+		
 		FormLayoutContainer buttonLayout = FormLayoutContainer.createButtonLayout("button_layout", getTranslator());
 		formLayout.add(buttonLayout);
 		searchButton = uifactory.addFormLink("search", buttonLayout, Link.BUTTON);
@@ -132,6 +143,9 @@ public class AuthorSearchController extends FormBasicController implements Exten
 		author.setValue(se.getAuthor());
 		ownedResourcesOnlyEl.select(keys[0], se.isOwnedResourcesOnly());
 		description.setValue(se.getDescription());
+		if(se.getResourceUsage() != null) {
+			resourceUsageEl.select(se.getResourceUsage().name(), true);
+		}
 		
 		String type = se.getType();
 		if(StringHelper.containsNonWhitespace(type)) {
@@ -197,6 +211,13 @@ public class AuthorSearchController extends FormBasicController implements Exten
 		return ownedResourcesOnlyEl.isAtLeastSelected(1);
 	}
 	
+	public ResourceUsage getResourceUsage() {
+		if(resourceUsageEl.isOneSelected()) {
+			return ResourceUsage.valueOf(resourceUsageEl.getSelectedKey());
+		}
+		return ResourceUsage.all;
+	}
+	
 	@Override
 	public void setEnabled(boolean enable) {
 		this.enabled = enable;
@@ -242,6 +263,7 @@ public class AuthorSearchController extends FormBasicController implements Exten
 		e.setDescription(getDescription());
 		e.setType(getRestrictedType());
 		e.setOwnedResourcesOnly(isOwnedResourcesOnly());
+		e.setResourceUsage(getResourceUsage());
 		fireEvent(ureq, e);
 	}
 
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java
index 8cb4517d62c9182853fa1c014ce5b92452cd9df0..45a4ef7abce4eac6a77ebe91be2b2cc80eac02df 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDataModel.java
@@ -85,6 +85,12 @@ class AuthoringEntryDataModel extends DefaultFlexiTableDataSourceModel<Authoring
 			case deletedBy: return item.getDeletedByFullName();
 			case deletionDate: return item.getDeletionDate();
 			case mark: return item.getMarkLink();
+			case references: {
+				if(item.getNumOfReferences() <= 0) {
+					return null;
+				}
+				return item.getReferencesLink();
+			}	
 			case detailsSupported: {
 				RepositoryHandler handler = handlerFactory.getRepositoryHandler(item.getResourceType());
 				return (handler != null) ? Boolean.TRUE : Boolean.FALSE;
@@ -125,6 +131,7 @@ class AuthoringEntryDataModel extends DefaultFlexiTableDataSourceModel<Authoring
 		access("table.header.access"),
 		creationDate("table.header.date"),
 		lastUsage("table.header.lastusage"),
+		references("table.header.references"),
 		deletedBy("table.header.deletedby"),
 		deletionDate("table.header.deletiondate"),
 		mark("table.header.mark"),
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryRow.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryRow.java
index 74ae6d439c72ad899c72ace67ea4daed19268767..1d3710f434242493e936bf9b7ba0d9b09a86d920 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryRow.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryRow.java
@@ -68,6 +68,8 @@ public class AuthoringEntryRow implements RepositoryEntryRef, RepositoryEntryLig
 	private Date lifecycleStart;
 	private Date lifecycleEnd;
 	
+	private int numOfReferences;
+	
 	private final String deletedByFullName;
 	private final Date deletionDate;
 	
@@ -77,6 +79,7 @@ public class AuthoringEntryRow implements RepositoryEntryRef, RepositoryEntryLig
 	
 	private FormLink markLink;
 	private FormLink toolsLink;
+	private FormLink referencesLink;
 	
 	public AuthoringEntryRow(RepositoryEntryAuthorView view, String fullnameAuthor) {
 		key = view.getKey();
@@ -119,6 +122,8 @@ public class AuthoringEntryRow implements RepositoryEntryRef, RepositoryEntryLig
 			}
 		}
 		
+		numOfReferences = view.getNumOfReferences();
+		
 		deletedByFullName = view.getDeletedByFullName();
 		deletionDate = view.getDeletionDate();
 	}
@@ -204,6 +209,10 @@ public class AuthoringEntryRow implements RepositoryEntryRef, RepositoryEntryLig
 	public Date getLifecycleEnd() {
 		return lifecycleEnd;
 	}
+	
+	public int getNumOfReferences() {
+		return numOfReferences;
+	}
 
 	public String getDeletedByFullName() {
 		return deletedByFullName;
@@ -282,6 +291,14 @@ public class AuthoringEntryRow implements RepositoryEntryRef, RepositoryEntryLig
 		this.toolsLink = toolsLink;
 	}
 	
+	public FormLink getReferencesLink() {
+		return referencesLink;
+	}
+
+	public void setReferencesLink(FormLink referencesLink) {
+		this.referencesLink = referencesLink;
+	}
+
 	@Override
 	public int hashCode() {
 		return key == null ? -79224867 : key.hashCode();
diff --git a/src/main/java/org/olat/repository/ui/author/SearchEvent.java b/src/main/java/org/olat/repository/ui/author/SearchEvent.java
index 9c025694c74aaf5ed620c189f5a9d0617c60d086..2a280d9dee150b037596e4c414b0c42bc0903199 100644
--- a/src/main/java/org/olat/repository/ui/author/SearchEvent.java
+++ b/src/main/java/org/olat/repository/ui/author/SearchEvent.java
@@ -21,6 +21,7 @@ package org.olat.repository.ui.author;
 
 import org.olat.core.gui.control.Event;
 import org.olat.core.id.context.StateEntry;
+import org.olat.repository.model.SearchAuthorRepositoryEntryViewParams.ResourceUsage;
 
 /**
  * 
@@ -38,6 +39,7 @@ public class SearchEvent extends Event implements StateEntry {
 	private String description;
 	private String type;
 	private boolean ownedResourcesOnly;
+	private ResourceUsage resourceUsage;
 	
 	public SearchEvent() {
 		super("re-search");
@@ -92,6 +94,14 @@ public class SearchEvent extends Event implements StateEntry {
 		this.ownedResourcesOnly = ownedResourcesOnly;
 	}
 
+	public ResourceUsage getResourceUsage() {
+		return resourceUsage;
+	}
+
+	public void setResourceUsage(ResourceUsage resourceUsage) {
+		this.resourceUsage = resourceUsage;
+	}
+
 	@Override
 	public SearchEvent clone() {
 		SearchEvent clone = new SearchEvent();
@@ -101,6 +111,7 @@ public class SearchEvent extends Event implements StateEntry {
 		clone.description = description;
 		clone.type = type;
 		clone.ownedResourcesOnly = ownedResourcesOnly;
+		clone.resourceUsage = resourceUsage;
 		return clone;
 	}
 }
diff --git a/src/main/java/org/olat/repository/ui/author/_content/references.html b/src/main/java/org/olat/repository/ui/author/_content/references.html
new file mode 100644
index 0000000000000000000000000000000000000000..f0015f49fe164962aee30168422639b85642164f
--- /dev/null
+++ b/src/main/java/org/olat/repository/ui/author/_content/references.html
@@ -0,0 +1,6 @@
+$r.translate("details.referenceinfo.txt")
+<ul class="o_dropdown list-unstyled">
+#foreach($referenceLink in $referenceLinks)
+	<li>$r.render($referenceLink)</li>
+#end
+</ul>
\ No newline at end of file