diff --git a/src/app/creator-room/creator-room.component.html b/src/app/creator-room/creator-room.component.html
index 0641b4c87e66a5ed882e0196e503ffe6bbfbf00e..6bceb686c433cac1cf73a2a604c8f8cae22a7f6b 100644
--- a/src/app/creator-room/creator-room.component.html
+++ b/src/app/creator-room/creator-room.component.html
@@ -23,7 +23,7 @@
         <button mat-button color="primary" matTooltip="See room comments" routerLink="/creator/room/{{room.id}}/comments">
           Comments
         </button>
-        <button mat-button color="warn" matTooltip="Delete selected room">
+        <button mat-button color="warn" matTooltip="Delete selected room" (click)="delete(room)">
           Delete room
         </button>
         <button mat-button color="primary" matTooltip="Go back to last page" (click)="goBack()">
diff --git a/src/app/creator-room/creator-room.component.ts b/src/app/creator-room/creator-room.component.ts
index ed782a4a2a2de6c1f8eec65afd88d4974117aa92..b0bd7a1775ca463427cd7ec86bea75ab9bf15334 100644
--- a/src/app/creator-room/creator-room.component.ts
+++ b/src/app/creator-room/creator-room.component.ts
@@ -15,8 +15,8 @@ export class CreatorRoomComponent extends RoomComponent implements OnInit {
 
   constructor(protected roomService: RoomService,
               protected route: ActivatedRoute,
-              private location: Location) {
-    super(roomService, route);
+              protected location: Location) {
+    super(roomService, route, location);
   }
 
   ngOnInit() {
diff --git a/src/app/room.service.ts b/src/app/room.service.ts
index 5f4fc2796b9dc7e031a00103aeca388e111c1e8a..503dbd986d0e0b628adca952362a22fc6f630554 100644
--- a/src/app/room.service.ts
+++ b/src/app/room.service.ts
@@ -37,4 +37,14 @@ export class RoomService extends ErrorHandlingService {
     catchError(this.handleError<Room>(`getRoom id=${id}`))
   );
   }
+
+  deleteRoom (room: Room | number): Observable<Room> {
+    const id = typeof room === 'number' ? room : room.id;
+    const url = `${this.roomsUrl}/${id}`;
+
+    return this.http.delete<Room>(url, httpOptions).pipe(
+      tap(_ => ''),
+      catchError(this.handleError<Room>('deleteRoom'))
+    );
+  }
 }
diff --git a/src/app/room/room.component.ts b/src/app/room/room.component.ts
index 3aa4d45a09d2689feee42f2ff5c96de6b889f6c4..22379c707e3bb93477f7e47fda0821e4ed3a82c3 100644
--- a/src/app/room/room.component.ts
+++ b/src/app/room/room.component.ts
@@ -2,6 +2,8 @@ import { Component, OnInit } from '@angular/core';
 import { Room } from '../room';
 import { RoomService } from '../room.service';
 import { ActivatedRoute } from '@angular/router';
+import { Observable } from 'rxjs/Observable';
+import { Location } from '@angular/common';
 
 @Component({
   selector: 'app-room',
@@ -13,7 +15,8 @@ export class RoomComponent implements OnInit {
   isLoading = true;
 
   constructor(protected roomService: RoomService,
-              protected route: ActivatedRoute) {
+              protected route: ActivatedRoute,
+              protected location: Location) {
   }
 
   ngOnInit() {
@@ -28,4 +31,9 @@ export class RoomComponent implements OnInit {
       this.isLoading = false;
     });
   }
+
+  delete(room: Room): void {
+    this.roomService.deleteRoom(room).subscribe();
+    this.location.back();
+  }
 }