diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index f4654b0629dedf0d609907f8a7e527deab210581..3c32c0b5a89c67ddaef615bfc85574454deddce0 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -12,6 +12,7 @@ import { AuthenticationGuard } from './guards/authentication.guard';
 import { RoomService } from './services/http/room.service';
 import { CommentService } from './services/http/comment.service';
 import { DataStoreService } from './services/util/data-store.service';
+import { EventService } from './services/util/event.service';
 import { ContentService } from './services/http/content.service';
 import { ContentAnswerService } from './services/http/content-answer.service';
 import { VoteService } from './services/http/vote.service';
@@ -77,6 +78,7 @@ export function initializeApp(appConfig: AppConfig) {
     AuthenticationService,
     AuthenticationGuard,
     DataStoreService,
+    EventService,
     RoomService,
     CommentService,
     ContentService,
diff --git a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
index e6a3c9f78f92d0b7b7433f9655c1ac12b7f00d37..43033c7022725ec234ab7f7d066c79951adaf892 100644
--- a/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
+++ b/src/app/components/creator/_dialogs/room-edit/room-edit.component.ts
@@ -9,8 +9,10 @@ import { Router } from '@angular/router';
 import { RoomCreatorPageComponent } from '../../room-creator-page/room-creator-page.component';
 import { DeleteCommentComponent } from '../delete-comment/delete-comment.component';
 import { CommentService } from '../../../../services/http/comment.service';
+import { EventService } from '../../../../services/util/event.service';
 import { CommentExportComponent } from '../comment-export/comment-export.component';
 import { Comment } from '../../../../models/comment';
+import { RoomDeleted } from '../../../../models/messages/room-deleted';
 
 @Component({
   selector: 'app-room-edit',
@@ -29,6 +31,7 @@ export class RoomEditComponent implements OnInit {
               protected roomService: RoomService,
               public router: Router,
               public commentService: CommentService,
+              public eventService: EventService,
               @Inject(MAT_DIALOG_DATA) public data: any) {
   }
 
@@ -69,7 +72,10 @@ export class RoomEditComponent implements OnInit {
     this.translationService.get('room-page.deleted').subscribe(msg => {
       this.notificationService.show(room.name + msg);
     });
-    this.roomService.deleteRoom(room.id).subscribe();
+    this.roomService.deleteRoom(room.id).subscribe(result => {
+      const event = new RoomDeleted(room.id);
+      this.eventService.broadcast(event.type, event.payload);
+    });
     this.dialogRef.close('delete');
     this.router.navigate([`/creator`]);
   }
diff --git a/src/app/components/shared/room-list/room-list.component.ts b/src/app/components/shared/room-list/room-list.component.ts
index 0085157249b74dd8f449f6a0a460f4281bb54575..4dbaa283819e3771484dc2cda32e9769c3b6ad09 100644
--- a/src/app/components/shared/room-list/room-list.component.ts
+++ b/src/app/components/shared/room-list/room-list.component.ts
@@ -1,6 +1,7 @@
 import { Component, OnInit } from '@angular/core';
 import { Room } from '../../../models/room';
 import { RoomService } from '../../../services/http/room.service';
+import { EventService } from '../../../services/util/event.service';
 import { AuthenticationService } from '../../../services/http/authentication.service';
 import { UserRole } from '../../../models/user-roles.enum';
 
@@ -17,12 +18,16 @@ export class RoomListComponent implements OnInit {
 
   constructor(
     private roomService: RoomService,
+    public eventService: EventService,
     protected authenticationService: AuthenticationService) {
   }
 
   ngOnInit() {
     this.getRooms();
     this.getPath();
+    this.eventService.on<any>('RoomDeleted').subscribe(payload => {
+      this.rooms = this.rooms.filter(r => r.id !== payload.id);
+    });
   }
 
   getPath() {
diff --git a/src/app/models/messages/room-deleted.ts b/src/app/models/messages/room-deleted.ts
new file mode 100644
index 0000000000000000000000000000000000000000..fb2a279470a07332a27821c6a0c0086b70947ebb
--- /dev/null
+++ b/src/app/models/messages/room-deleted.ts
@@ -0,0 +1,13 @@
+export class RoomDeleted {
+  type: string;
+  payload: {
+    id: string;
+  };
+
+  constructor(id: string) {
+    this.type = 'RoomDeleted';
+    this.payload = {
+      id: id
+    };
+  }
+}
diff --git a/src/app/services/util/event.service.ts b/src/app/services/util/event.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..243726b1cd79fcb9734a0622d18060626a23afe6
--- /dev/null
+++ b/src/app/services/util/event.service.ts
@@ -0,0 +1,27 @@
+import { Subject } from 'rxjs/Subject';
+import { Observable } from 'rxjs/Observable';
+import { filter, map } from 'rxjs/operators';
+
+interface BroadcastEvent {
+  key: any;
+  data?: any;
+}
+
+export class EventService {
+  private _eventBus: Subject<BroadcastEvent>;
+
+  constructor() {
+    this._eventBus = new Subject<BroadcastEvent>();
+  }
+
+  broadcast(key: any, data?: any) {
+    this._eventBus.next({ key, data });
+  }
+
+  on<T>(key: any): Observable<T> {
+    return this._eventBus.asObservable().pipe(
+      filter(event => event.key === key),
+      map(event => <T>event.data)
+    );
+  }
+}