diff --git a/src/app/appmarket/domains/domains.module.ts b/src/app/appmarket/domains/domains.module.ts
index af01e1f53eece3f2c3727782c3e1374a34e36e9c..7d7dbf47029cf6a452720fa33a906f0591408f4b 100644
--- a/src/app/appmarket/domains/domains.module.ts
+++ b/src/app/appmarket/domains/domains.module.ts
@@ -17,6 +17,7 @@ import { DomainGroupsComponent } from './domain-groups/domain-groups.component';
 import { DomainGroupViewComponent } from './domain-group-view/domain-group-view.component';
 import {DropdownModule} from 'primeng/dropdown';
 import {MultiSelectModule} from 'primeng/multiselect';
+import { RemovalConfirmationModalComponent } from './modals/removal-confirmation-modal/removal-confirmation-modal.component';
 
 
 
@@ -26,6 +27,7 @@ import {MultiSelectModule} from 'primeng/multiselect';
     DomainComponent,
     DomainGroupsComponent,
     DomainGroupViewComponent,
+    RemovalConfirmationModalComponent,
   ],
     imports: [
         CommonModule,
diff --git a/src/app/appmarket/domains/list/domainslist.component.html b/src/app/appmarket/domains/list/domainslist.component.html
index d68a53741d5848fc1d85268787e363f8c35fd96a..3993ed5159c51184a6f8baaf9b891548fcf5f034 100644
--- a/src/app/appmarket/domains/list/domainslist.component.html
+++ b/src/app/appmarket/domains/list/domainslist.component.html
@@ -34,7 +34,7 @@
 							<li><a *roles="['ROLE_SYSTEM_ADMIN']" (click)="$event.stopPropagation(); changeState(domain)"
 								   class="">{{ getStateLabel(domain?.active) }}</a>
 							</li>
-							<li><a *roles="['ROLE_SYSTEM_ADMIN']" (click)="$event.stopPropagation(); softDeleteDomain(domain.id)"
+							<li><a *roles="['ROLE_SYSTEM_ADMIN']" (click)="$event.stopPropagation(); openRemovalModal(domain)"
 								   class="">{{ 'DOMAINS.DELETE_BUTTON' | translate }}</a>
 							</li>
 						</ul>
@@ -45,3 +45,5 @@
 		</tbody>
 	</table>
 </div>
+
+<app-removal-confirmation-modal [domain]="domainToRemove" (onConfirm)="update()"></app-removal-confirmation-modal>
diff --git a/src/app/appmarket/domains/list/domainslist.component.ts b/src/app/appmarket/domains/list/domainslist.component.ts
index ab855567d79f7ccd872731158111fb2cf8ef7675..ae21395b6974d8216b80aa78a1e510a3a2433566 100644
--- a/src/app/appmarket/domains/list/domainslist.component.ts
+++ b/src/app/appmarket/domains/list/domainslist.component.ts
@@ -2,10 +2,14 @@ import {AuthService} from '../../../auth/auth.service';
 import {Domain} from '../../../model/domain';
 import {Role} from '../../../model/userrole';
 import {DomainService} from '../../../service/domain.service';
-import {Component, OnInit} from '@angular/core';
+import {Component, OnInit, ViewChild} from '@angular/core';
 import {Observable} from 'rxjs';
 import {map} from 'rxjs/operators';
 import {TranslateService} from '@ngx-translate/core';
+import {ModalComponent} from "../../../shared";
+import {
+    RemovalConfirmationModalComponent
+} from "../modals/removal-confirmation-modal/removal-confirmation-modal.component";
 
 @Component({
     selector: 'app-domains-list',
@@ -16,6 +20,11 @@ export class DomainsListComponent implements OnInit {
 
     public domains: Observable<Domain[]>;
 
+    @ViewChild(RemovalConfirmationModalComponent)
+    public readonly modal: ModalComponent;
+
+    public domainToRemove: Domain
+
     constructor(protected domainService: DomainService, protected authService: AuthService, public translate: TranslateService) {
     }
 
@@ -33,7 +42,7 @@ export class DomainsListComponent implements OnInit {
         }
     }
 
-    protected update(): void {
+    public update(): void {
         this.domains = this.getDomainsObservable().pipe(
             map((domains) => [...domains].sort(
                 (a, b) => {
@@ -59,10 +68,15 @@ export class DomainsListComponent implements OnInit {
         return active ? this.translate.instant('DOMAINS.DISABLE_BUTTON') : this.translate.instant('DOMAINS.ENABLE_BUTTON');
     }
 
-    public softDeleteDomain(id: number): void {
+    public softRemoveDomain(id: number): void {
         this.domainService.remove(id, true).subscribe({
             next: () => this.update(),
             error: err => console.error(err)
         });
     }
+
+    openRemovalModal(domain: Domain) {
+        this.domainToRemove = domain
+        this.modal.show()
+    }
 }
diff --git a/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.css b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.css
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.html b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.html
new file mode 100644
index 0000000000000000000000000000000000000000..57bb6c8310495d27c1c48320ee12f71f6bea1290
--- /dev/null
+++ b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.html
@@ -0,0 +1,12 @@
+<nmaas-modal styleModal="warning">
+<!--    <div class="nmaas-modal-header">{{'APP_ACCESS_METHODS_MODAL.HEADER' | translate}}</div>-->
+    <div class="nmaas-modal-header">{{ 'DOMAIN_DETAILS.MODAL.HEADER' | translate }}</div>
+    <div class="nmaas-modal-body">
+        <p>{{ 'DOMAIN_DETAILS.MODAL.DESCRIPTION' | translate}}</p>
+    </div>
+    <div class="nmaas-modal-footer">
+        <button role="button" type="button" class="btn btn-success" (click)="removeDomain()">{{ 'DOMAIN_DETAILS.MODAL.BUTTONS.CONFIRM' | translate}}</button>
+        <button type="button" class="btn btn-primary" (click)="modal.hide()">{{ 'DOMAIN_DETAILS.MODAL.BUTTONS.CANCEL' | translate}}</button>
+    </div>
+</nmaas-modal>
+
diff --git a/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.spec.ts b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..572ebc13fdfc3bc24101c49b981c45a3ffb49cb9
--- /dev/null
+++ b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.spec.ts
@@ -0,0 +1,25 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { RemovalConfirmationModalComponent } from './removal-confirmation-modal.component';
+
+describe('RemovalConfirmationModalComponent', () => {
+  let component: RemovalConfirmationModalComponent;
+  let fixture: ComponentFixture<RemovalConfirmationModalComponent>;
+
+  beforeEach(async () => {
+    await TestBed.configureTestingModule({
+      declarations: [ RemovalConfirmationModalComponent ]
+    })
+    .compileComponents();
+  });
+
+  beforeEach(() => {
+    fixture = TestBed.createComponent(RemovalConfirmationModalComponent);
+    component = fixture.componentInstance;
+    fixture.detectChanges();
+  });
+
+  it('should create', () => {
+    expect(component).toBeTruthy();
+  });
+});
diff --git a/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.ts b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e925c3e469965bff892c26fdc739b47fe66b3dce
--- /dev/null
+++ b/src/app/appmarket/domains/modals/removal-confirmation-modal/removal-confirmation-modal.component.ts
@@ -0,0 +1,39 @@
+import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
+import {ModalComponent} from "../../../../shared";
+import {Domain} from "../../../../model/domain";
+import {DomainService} from "../../../../service";
+
+@Component({
+  selector: 'app-removal-confirmation-modal',
+  templateUrl: './removal-confirmation-modal.component.html',
+  styleUrls: ['./removal-confirmation-modal.component.css']
+})
+export class RemovalConfirmationModalComponent {
+
+  @ViewChild(ModalComponent, { static: true })
+  public readonly modal: ModalComponent;
+
+  @Input()
+  public domain: Domain;
+
+  @Output()
+  public onConfirm: EventEmitter<void> = new EventEmitter<void>();
+
+  constructor(private readonly domainService: DomainService) { }
+
+  public show() {
+    this.modal.show();
+  }
+
+  public hide() {
+    this.modal.hide();
+    this.onConfirm.emit()
+  }
+
+  removeDomain() {
+    this.domainService.remove(this.domain.id, true).subscribe({
+      next: () => this.hide(),
+      error: err => console.error(err)
+    });
+  }
+}
diff --git a/src/app/service/domain.service.ts b/src/app/service/domain.service.ts
index 820e7119fd230857a7f37c6d0661f600cc2494d9..3337b1902762aa14cb17b9662962d0b686c4568c 100644
--- a/src/app/service/domain.service.ts
+++ b/src/app/service/domain.service.ts
@@ -61,10 +61,10 @@ export class DomainService extends GenericDataService {
     return this.patch<Domain, Id>(this.url + domain.id + '/state?active=' + !domain.active, null);
   }
 
-  public remove(domainId: number, softDelete?: boolean): Observable<any> {
+  public remove(domainId: number, softRemove?: boolean): Observable<any> {
     let params = new HttpParams()
-    if (softDelete !== undefined) {
-      params = params.append("softDelete", softDelete.toString())
+    if (softRemove !== undefined) {
+      params = params.append("softRemove", softRemove.toString())
     }
     return this.http.delete(this.url + domainId, {params})
   }