diff --git a/projects/common/id.service.ts b/projects/common/id.service.ts
index ad823964aae78ad9ea876eefa0a39e4680a29f85..1aa8fdfb20a0925aab2a04109b339b4322759555 100644
--- a/projects/common/id.service.ts
+++ b/projects/common/id.service.ts
@@ -53,6 +53,7 @@ export class IdService {
     this.givenIDs.push(id);
   }
 
+  /* Remove ID from givenIDs, so it can be used again. */
   removeId(id: string): void {
     const index = this.givenIDs.indexOf(id, 0);
     if (index > -1) {
diff --git a/projects/editor/src/app/services/unit.service.ts b/projects/editor/src/app/services/unit.service.ts
index 3880a56362028a3a9d50fb2afbbd011534997bd4..e3e39e30bab313d4c935a54df7a451ab075a9e3b 100644
--- a/projects/editor/src/app/services/unit.service.ts
+++ b/projects/editor/src/app/services/unit.service.ts
@@ -11,7 +11,8 @@ import { Unit } from '../../../../common/models/unit';
 import { Page } from '../../../../common/models/page';
 import { Section } from '../../../../common/models/section';
 import {
-  InputElement,
+  DragNDropValueObject,
+  InputElement, InputElementValue,
   LikertColumn,
   LikertRow, PlayerElement,
   PlayerProperties, PositionedElement,
@@ -173,12 +174,24 @@ export class UnitService {
   }
 
   deleteElements(elements: UIElement[]): void {
+    UnitService.freeUpIds(elements);
     this.unitModel.pages[this.selectionService.selectedPageIndex].sections.forEach(section => {
       section.deleteElements(elements);
     });
     this.veronaApiService.sendVoeDefinitionChangedNotification();
   }
 
+  private static freeUpIds(elements: UIElement[]): void {
+    elements.forEach(element => {
+      if (element.type === 'drop-list') {
+        element.value.foreach((value: DragNDropValueObject) => {
+          IdService.getInstance().removeId(value.id);
+        });
+      }
+      IdService.getInstance().removeId(element.id);
+    });
+  }
+
   /* Move element between sections */
   transferElement(elements: UIElement[], previousSection: Section, newSection: Section): void {
     previousSection.elements = previousSection.elements.filter(element => !elements.includes(element));
@@ -218,7 +231,7 @@ export class UnitService {
           this.messageService.showError(this.translateService.instant('idTaken'));
           return false;
         }
-        IdService.getInstance().removeId(element[property]);
+        IdService.getInstance().removeId(element.id);
         IdService.getInstance().addId(<string>value);
       }
       element.setProperty(property, value);