diff --git a/src/app/group-monitor/group-monitor.component.ts b/src/app/group-monitor/group-monitor.component.ts
index 206a195236d699c8461fb26c9dfa270a05c600ae..66b12e2c82c21eaf27f712adfd67bb1689a0fb1f 100644
--- a/src/app/group-monitor/group-monitor.component.ts
+++ b/src/app/group-monitor/group-monitor.component.ts
@@ -9,7 +9,7 @@ import {
 } from './group-monitor.interfaces';
 import {ActivatedRoute} from '@angular/router';
 import {ConnectionStatus} from '../shared/websocket-backend.service';
-import {map} from 'rxjs/operators';
+import {map, tap} from 'rxjs/operators';
 import {Sort} from '@angular/material/sort';
 import {MatSidenav} from '@angular/material/sidenav';
 import {MatCheckboxChange} from '@angular/material/checkbox';
@@ -112,6 +112,7 @@ export class GroupMonitorComponent implements OnInit, OnDestroy {
     combineLatest<[Sort, TestSessionFilter[], TestSession[]]>([this.sortBy$, this.filters$, this.monitor$])
       .pipe(
           map(([sortBy, filters, sessions]) => this.sortSessions(sortBy, this.filterSessions(sessions, filters))),
+          tap(sessions => this.updateChecked(sessions))
       )
       .subscribe(this.sessions$);
 
@@ -172,6 +173,18 @@ export class GroupMonitorComponent implements OnInit, OnDestroy {
     }, true);
   }
 
+  private updateChecked(sessions: TestSession[]): void {
+    const newCheckedSessions: {[sessionFullId: number]: TestSession} = {};
+    sessions
+        .forEach(session => {
+            const sessionFullId = GroupMonitorComponent.getPersonXTestId(session);
+            if (typeof this.checkedSessions[sessionFullId] !== 'undefined') {
+              newCheckedSessions[sessionFullId] = session;
+            }
+    });
+    this.checkedSessions = newCheckedSessions;
+  }
+
   adjustViewModeOnBookletLoad(bookletId: string): void {
     if (bookletId && this.bookletIdsViewIsAdjustedFor.indexOf(bookletId) === -1) {
       this.bookletIdsViewIsAdjustedFor.push(bookletId);