diff --git a/src/main/java/org/olat/modules/quality/manager/QualityServiceImpl.java b/src/main/java/org/olat/modules/quality/manager/QualityServiceImpl.java
index d63ab78aaf018d65949d0d005ae86f73f9045636..9af3287041e1573cb0f840d2af793cbda51e4366 100644
--- a/src/main/java/org/olat/modules/quality/manager/QualityServiceImpl.java
+++ b/src/main/java/org/olat/modules/quality/manager/QualityServiceImpl.java
@@ -63,6 +63,9 @@ import org.olat.modules.quality.QualityReminderType;
 import org.olat.modules.quality.QualityService;
 import org.olat.modules.taxonomy.TaxonomyLevelRef;
 import org.olat.repository.RepositoryEntry;
+import org.olat.resource.OLATResourceManager;
+import org.olat.resource.references.Reference;
+import org.olat.resource.references.ReferenceManager;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -97,11 +100,17 @@ public class QualityServiceImpl implements QualityService, OrganisationDataDelet
 	private QualityMailing qualityMailing;
 	@Autowired
 	private EvaluationFormManager evaluationFormManager;
+	@Autowired
+	private OLATResourceManager resourceManager;
+	@Autowired
+	private ReferenceManager referenceManager;
 	
 	@Override
 	public QualityDataCollection createDataCollection(RepositoryEntry formEntry) {
 		QualityDataCollection dataCollection = dataCollectionDao.createDataCollection();
 		evaluationFormManager.createSurvey(dataCollection, null, formEntry);
+		resourceManager.findOrPersistResourceable(dataCollection);
+		referenceManager.addReference(dataCollection, formEntry.getOlatResource(), null);
 		return dataCollection;
 	}
 
@@ -167,6 +176,8 @@ public class QualityServiceImpl implements QualityService, OrganisationDataDelet
 		}
 		EvaluationFormSurvey survey = evaluationFormManager.loadSurvey(dataCollection, null);
 		evaluationFormManager.deleteSurvey(survey);
+		deleteReferences(dataCollection);
+		resourceManager.deleteOLATResourceable(dataCollection);
 		dataCollectionDao.deleteDataCollection(dataCollection);
 		log.info("Quality management data collection deleted: " + dataCollection.toString());
 	}
@@ -186,7 +197,16 @@ public class QualityServiceImpl implements QualityService, OrganisationDataDelet
 	@Override
 	public void updateFormEntry(QualityDataCollection dataCollection, RepositoryEntry formEntry) {
 		EvaluationFormSurvey survey = evaluationFormManager.loadSurvey(dataCollection, null);
+		deleteReferences(dataCollection);
+		
 		evaluationFormManager.updateSurveyForm(survey, formEntry);
+		referenceManager.addReference(dataCollection, formEntry.getOlatResource(), null);
+	}
+
+	private void deleteReferences(QualityDataCollectionLight dataCollection) {
+		for (Reference reference : referenceManager.getReferences(dataCollection)) {
+			referenceManager.delete(reference);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_en.properties
index 6af5ec5b19e24006c973b6b9ab893bf13fc658c5..63c6537da77a4f96bbb167a02941b99c6b842e88 100644
--- a/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/quality/ui/_i18n/LocalStrings_en.properties
@@ -2,7 +2,7 @@ admin.config.title=Configuration quality management
 admin.enabled=Quality management
 admin.menu.title.alt=$\:admin.menu.title
 admin.menu.title=Quality management
-breadcrumb.data.collections=$\:goto.data.collections.title
+breadcrumb.data.collections=$\:goto.data.collection.title
 breadcrumb.executor.participations=$\:goto.executor.participation.title
 breadcrumb.root=Quality management
 data.collection.configuration=Configuration
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 a191175aa5ac84931519a3a3f695bd999fb74031..d879fb9d2e0ad8dab2999dc344005956fef7c452 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -285,6 +285,7 @@ details.read.only.acknowledge=Best\u00E4tigung
 details.read.only.acknowledge.error=Bitte best\u00E4tigen.
 details.read.only.acknowledge.msg=Alle Kursbausteine inklusive Tests, Foren etc. befinden sich im Lesemodus und k\u00F6nnen nicht mehr bearbeitet werden.
 details.referenceinfo=Referenzen
+details.referenceinfo.data.collections=Anzahl Datenerhebungen: {0}
 details.referenceinfo.txt=Wird in folgenden Kursen eingesetzt\:
 details.referenceinfoheader=Information zur Verwendung
 details.summaryprop=Zusammenfassung Einstellungen
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 8964c2980de8292f8d7166f49f93cd4452238d04..05958ea60f00f8408335c99a86eb8ba26d5666fc 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_en.properties
@@ -281,6 +281,7 @@ details.read.only.acknowledge=Confirmation
 details.read.only.acknowledge.error=Please confirm.
 details.read.only.acknowledge.msg=All course elements inclusive tests... will be in read only mode and cannot be edited anymore.
 details.referenceinfo=References
+details.referenceinfo.data.collections=Number of data collections: {0}
 details.referenceinfo.txt=Used in the following courses\:
 details.referenceinfoheader=Information on usage
 details.summaryprop=Summary of settings
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 d8b81fd250d1e8b7e36fba2b4969fa396b40ae03..44d9c1d5c88c571b78e49af2c2301a65bb08989a 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -92,6 +92,7 @@ import org.olat.core.util.coordinate.LockResult;
 import org.olat.core.util.resource.OresHelper;
 import org.olat.course.CorruptedCourseException;
 import org.olat.course.CourseModule;
+import org.olat.modules.quality.QualityDataCollectionLight;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.RepositoryEntryManagedFlag;
 import org.olat.repository.RepositoryEntryRef;
@@ -110,6 +111,7 @@ 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.Reference;
 import org.olat.resource.references.ReferenceManager;
 import org.olat.user.UserManager;
 import org.olat.util.logging.activity.LoggingResourceable;
@@ -782,7 +784,7 @@ public class AuthorListController extends FormBasicController implements Activat
 	
 	private void doSearch(UserRequest ureq, SearchEvent se) {
 		if(se.getTypes() != null && se.getTypes().size() > 0) {
-			searchParams.setResourceTypes(new ArrayList<String>(se.getTypes()));
+			searchParams.setResourceTypes(new ArrayList<>(se.getTypes()));
 		} else {
 			searchParams.setResourceTypes(null);
 		}
@@ -1185,6 +1187,13 @@ public class AuthorListController extends FormBasicController implements Activat
 			}
 			mainVC.contextPut("referenceLinks", refLinks);
 			
+			List<Reference> references = referenceManager.getReferencesTo(entry.getOlatResource(),
+					QualityDataCollectionLight.RESOURCEABLE_TYPE_NAME);
+			if (!references.isEmpty()) {
+				mainVC.contextPut("qualityDataCollections", translate("details.referenceinfo.data.collections",
+						new String[] { String.valueOf(references.size()) }));
+			}
+			
 			putInitialPanel(mainVC);
 		}
 
diff --git a/src/main/java/org/olat/repository/ui/author/ConfirmDeletePermanentlyController.java b/src/main/java/org/olat/repository/ui/author/ConfirmDeletePermanentlyController.java
index be6ff8ca048f2b20686bae98f4654d6bb85314c3..bd37f5f3a52ab8f63a9f466d90089c697671d0e1 100644
--- a/src/main/java/org/olat/repository/ui/author/ConfirmDeletePermanentlyController.java
+++ b/src/main/java/org/olat/repository/ui/author/ConfirmDeletePermanentlyController.java
@@ -235,7 +235,7 @@ public class ConfirmDeletePermanentlyController extends FormBasicController {
 	
 	private void doCompleteDelete(UserRequest ureq) {
 		List<ErrorList> errorList = new ArrayList<>();
-		boolean allOk = deleteEntries(ureq, rows, errorList) ;
+		boolean allOk = deleteEntries(ureq, rows, errorList);
 		
 		if(allOk && deleteReferencesEl.isVisible() && deleteReferencesEl.isEnabled()
 				&& deleteReferencesEl.isOneSelected() && deleteReferencesEl.isSelected(0)) {
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
index f0015f49fe164962aee30168422639b85642164f..3bacd22ac2845d2da3906b1d77fc0dbcc959a56b 100644
--- a/src/main/java/org/olat/repository/ui/author/_content/references.html
+++ b/src/main/java/org/olat/repository/ui/author/_content/references.html
@@ -1,6 +1,13 @@
-$r.translate("details.referenceinfo.txt")
-<ul class="o_dropdown list-unstyled">
-#foreach($referenceLink in $referenceLinks)
-	<li>$r.render($referenceLink)</li>
+#if(!$referenceLinks.isEmpty())
+	$r.translate("details.referenceinfo.txt")
+	<ul class="o_dropdown list-unstyled">
+	#foreach($referenceLink in $referenceLinks)
+		<li>$r.render($referenceLink)</li>
+	#end
+	</ul>
 #end
-</ul>
\ No newline at end of file
+<div class="o_block_small_top">
+	#if($r.isNotNull($qualityDataCollections))
+		$qualityDataCollections
+	#end
+</div>
\ No newline at end of file
diff --git a/src/main/java/org/olat/resource/references/ReferenceManager.java b/src/main/java/org/olat/resource/references/ReferenceManager.java
index 827086e115540722f35abd64faaa3d90698e61b6..8574178638ecf7de00dfdae1112f8eff2b460285 100644
--- a/src/main/java/org/olat/resource/references/ReferenceManager.java
+++ b/src/main/java/org/olat/resource/references/ReferenceManager.java
@@ -108,7 +108,7 @@ public class ReferenceManager {
 	public List<Reference> getReferences(OLATResourceable source) {
 		Long sourceKey = getResourceKey(source);
 		if (sourceKey == null) {
-			return new ArrayList<Reference> (0);
+			return new ArrayList<>(0);
 		}
 		return dbInstance.getCurrentEntityManager()
 				.createNamedQuery("referencesBySourceId", Reference.class)
@@ -125,7 +125,7 @@ public class ReferenceManager {
 	public List<Reference> getReferencesTo(OLATResourceable target) {
 		Long targetKey = getResourceKey(target);
 		if (targetKey == null) {
-			return new ArrayList<Reference>(0);
+			return new ArrayList<>(0);
 		}
 		return dbInstance.getCurrentEntityManager()
 				.createNamedQuery("referencesByTargetId", Reference.class)
@@ -133,6 +133,25 @@ public class ReferenceManager {
 				.getResultList();
 	}
 	
+	public List<Reference> getReferencesTo(OLATResourceable target, String sourceResName) {
+		Long targetKey = getResourceKey(target);
+		if (targetKey == null) {
+			return new ArrayList<>(0);
+		}
+		
+		StringBuilder sb = new StringBuilder();
+		sb.append("select v");
+		sb.append("  from references as v");
+		sb.append(" where v.target.key = :targetKey");
+		sb.append("   and v.source.resName = :resName");
+		
+		return dbInstance.getCurrentEntityManager()
+				.createQuery(sb.toString(), Reference.class)
+				.setParameter("targetKey", targetKey)
+				.setParameter("resName", sourceResName)
+				.getResultList();
+	}
+	
 	public List<RepositoryEntry> getRepositoryReferencesTo(OLATResourceable target) {
 		Long targetKey = getResourceKey(target);
 		StringBuilder sb = new StringBuilder();