diff --git a/src/app/core/data/data.service.ts b/src/app/core/data/data.service.ts
index fc4da69a5cd0764ab03a72b86e7b4bd76b669b4e..5693b31d2ac0406a006318a8077d56b66e68a8e7 100644
--- a/src/app/core/data/data.service.ts
+++ b/src/app/core/data/data.service.ts
@@ -284,6 +284,34 @@ export abstract class DataService<T extends CacheableObject> {
    * Return an observable that emits true when the deletion was successful, false when it failed
    */
   delete(dso: T): Observable<boolean> {
+    const requestId = this.deleteAndReturnRequestId(dso);
+
+    return this.requestService.getByUUID(requestId).pipe(
+      find((request: RequestEntry) => request.completed),
+      map((request: RequestEntry) => request.response.isSuccessful)
+    );
+  }
+
+  /**
+   * Delete an existing DSpace Object on the server
+   * @param dso The DSpace Object to be removed
+   * Return an observable of the completed response
+   */
+  deleteAndReturnResponse(dso: T): Observable<RestResponse> {
+    const requestId = this.deleteAndReturnRequestId(dso);
+
+    return this.requestService.getByUUID(requestId).pipe(
+      find((request: RequestEntry) => request.completed),
+      map((request: RequestEntry) => request.response)
+    );
+  }
+
+  /**
+   * Delete an existing DSpace Object on the server
+   * @param dso The DSpace Object to be removed
+   * Return the delete request's ID
+   */
+  deleteAndReturnRequestId(dso: T): string {
     const requestId = this.requestService.generateRequestId();
 
     const hrefObs = this.halService.getEndpoint(this.linkPath).pipe(
@@ -297,10 +325,7 @@ export abstract class DataService<T extends CacheableObject> {
       })
     ).subscribe();
 
-    return this.requestService.getByUUID(requestId).pipe(
-      find((request: RequestEntry) => request.completed),
-      map((request: RequestEntry) => request.response.isSuccessful)
-    );
+    return requestId;
   }
 
   /**