diff --git a/src/main/java/org/olat/modules/qpool/QPoolService.java b/src/main/java/org/olat/modules/qpool/QPoolService.java
index d831f22642840612843f1e9f43958c5b2e0d90b7..5d9e52fadddecf82991caf76378fecc02b64a19b 100644
--- a/src/main/java/org/olat/modules/qpool/QPoolService.java
+++ b/src/main/java/org/olat/modules/qpool/QPoolService.java
@@ -202,5 +202,7 @@ public interface QPoolService {
 	
 	public QLicense updateLicense(QLicense license);
 	
+	public boolean deleteLicense(QLicense license);
+	
 	
 }
diff --git a/src/main/java/org/olat/modules/qpool/manager/QLicenseDAO.java b/src/main/java/org/olat/modules/qpool/manager/QLicenseDAO.java
index aaa2556ae555c5b0c8867d810e3ad027dc2327ad..53b36b37954a5980c064d71fcb5faaf8f21bc1dd 100644
--- a/src/main/java/org/olat/modules/qpool/manager/QLicenseDAO.java
+++ b/src/main/java/org/olat/modules/qpool/manager/QLicenseDAO.java
@@ -121,13 +121,28 @@ public class QLicenseDAO implements ApplicationListener<ContextRefreshedEvent> {
 	
 	public boolean delete(QLicense license) {
 		QLicense reloadLicense = loadById(license.getKey());
-		if(reloadLicense.isDeletable()) {
-			dbInstance.getCurrentEntityManager().remove(reloadLicense);
-			return true;
+		if(reloadLicense != null && reloadLicense.isDeletable()) {
+			int used = countItemUsing(reloadLicense);
+			if(used == 0) {
+				dbInstance.getCurrentEntityManager().remove(reloadLicense);
+				return true;
+			}
+			return false;
 		}
 		return false;
 	}
 	
+	public int countItemUsing(QLicense license) {
+		StringBuilder sb = new StringBuilder();
+		sb.append("select count(item) from questionitem item where item.license.key=:licenseKey");
+		List<Number> count = dbInstance.getCurrentEntityManager()
+			.createQuery(sb.toString(), Number.class)
+			.setParameter("licenseKey", license.getKey())
+			.getResultList();
+		
+		return count == null || count.isEmpty() || count.get(0) == null ? 0 : count.get(0).intValue();
+	}
+	
 	public List<QLicense> getLicenses() {
 		return dbInstance.getCurrentEntityManager()
 				.createNamedQuery("loadQLicenses", QLicense.class)
diff --git a/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java b/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
index 363d451201e4ceb9997b6ae8d6c45e6d565ea551..d1c14ce42a3fa0030a96c82a216f79c48b98593d 100644
--- a/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
+++ b/src/main/java/org/olat/modules/qpool/manager/QuestionPoolServiceImpl.java
@@ -760,6 +760,11 @@ public class QuestionPoolServiceImpl implements QPoolService {
 		return qpoolLicenseDao.update(license);
 	}
 
+	@Override
+	public boolean deleteLicense(QLicense license) {
+		return qpoolLicenseDao.delete(license);
+	}
+
 	@Override
 	public List<TaxonomyLevel> getTaxonomyLevels() {
 		return taxonomyLevelDao.loadAllLevels();
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/QLicensesAdminController.java b/src/main/java/org/olat/modules/qpool/ui/admin/QLicensesAdminController.java
index 1041d9cd247edbc7e49361175d6653c3213fd819..27499a78cf5515d50fe6334a5ad606436785b1b0 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/QLicensesAdminController.java
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/QLicensesAdminController.java
@@ -136,8 +136,8 @@ public class QLicensesAdminController extends FormBasicController {
 			cleanUp();
 		} else if(source == confirmDeleteCtrl) {
 			if(DialogBoxUIFactory.isOkEvent(event) || DialogBoxUIFactory.isYesEvent(event)) {
-				QLicense type = (QLicense)confirmDeleteCtrl.getUserObject();
-				doDelete(ureq, type);
+				QLicense license = (QLicense)confirmDeleteCtrl.getUserObject();
+				doDelete(license);
 			}
 		} else if(source == cmc) {
 			cleanUp();
@@ -164,9 +164,13 @@ public class QLicensesAdminController extends FormBasicController {
 		confirmDeleteCtrl.setUserObject(type);
 	}
 	
-	private void doDelete(UserRequest ureq, QLicense type) {
-		//qpoolService.deldeletePool(pool);
-		reloadModel();
+	private void doDelete(QLicense license) {
+		if(qpoolService.deleteLicense(license)) {
+			reloadModel();
+			showInfo("item.license.deleted");
+		} else {
+			showError("item.license.notdeleted");
+		}
 	}
 	
 	private void doEdit(UserRequest ureq, QLicense license) {
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
index 3b5c81be41aa50da309c96d2f49a092a7e585929..6bd86003b36291ae8a7666ae24463fbd71f59f80 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_de.properties
@@ -19,6 +19,8 @@ delete.type.confirm=Wollen Sie wirklich diesen Typ l\u00F6schen?
 edit.taxonomyLevel=Fachbereich bearbeiten
 educational.context.deleted=Fachbereich wurde erfolgreich gel\u00F6scht
 educational.context.notdeleted=Fachbereich konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
+item.license.deleted=Lizenz wurde erfolgreich gel\u00F6scht
+item.license.notdeleted=Lizenz konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
 error.item.type.unique=Ein Fragetyp mit diesem Name existiert schon.
 item.type.deleted=Fragetyp wurde erfolgreich gel\u00F6scht
 item.type.notdeleted=Fragetyp konnte nicht gel\u00F6scht werden, eventuell wird er bereits verwendet
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
index c0fa43e907eba6fa2f5b3789b3a51735e5c04a16..e9842ca6e2285e5f043a208b3c84a4c93230392d 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_en.properties
@@ -20,6 +20,8 @@ edit.taxonomyLevel=Edit subject
 educational.context.deleted=Subject has been successfully deleted.
 educational.context.notdeleted=Subject cannot be deleted, it is probably in use.
 error.item.type.unique=A question type with this name already exists.
+item.license.deleted=License has been successfully deleted.
+item.license.notdeleted=License cannot be deleted, it is probably in use.
 item.type.deleted=Type has been successfully deleted.
 item.type.notdeleted=Type cannot be deleted, it is probably in use.
 level.key=ID
diff --git a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
index de1ac666df0dd39aa6f74b1649d963aa7c2be733..c7e97059f1b5d1fd4215b02e7923309e1298e5c0 100644
--- a/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/qpool/ui/admin/_i18n/LocalStrings_fr.properties
@@ -20,6 +20,8 @@ edit.taxonomyLevel=Editer le sujet
 educational.context.deleted=Le sujet a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
 educational.context.notdeleted=Le sujet n'a pas pu \u00EAtre effac\u00E9, il est probablement utilis\u00E9.
 error.item.type.unique=Un type de question avec ce nom existe déjà.
+item.license.deleted=Le license a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
+item.license.notdeleted=Le license n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9.
 item.type.deleted=Le type a \u00E9t\u00E9 effac\u00E9 avec succ\u00E8s.
 item.type.notdeleted=Le type n'a pas pu \u00EAtre effac\u00E9 avec succ\u00E8s, il est probablement encore utilis\u00E9.
 level.key=ID