diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt
index c68fdc1d7ee09995f9f26a8bc24a61871d9f5083..266c7bc7c88bbbfaff0175f59a3d992802640e85 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumItem.kt
@@ -55,4 +55,7 @@ data class ForumItem(
             unread = if (header.isRead) unread else unread + 1,
             timestamp = max(header.timestamp, this.timestamp)
         )
+
+    fun updateOnPostsRead(num: Int) =
+        copy(unread = unread - num)
 }
diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt
index 1e5c78569aa7fa45dd0882038972c99a82747f37..629bb298f4bf429f8a27059a98bff3d7b709fa47 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ForumViewModel.kt
@@ -105,6 +105,10 @@ class ForumViewModel @Inject constructor(
             e is ForumPostReceivedEvent -> {
                 updateItem(e.groupId) { it.updateOnPostReceived(e.header) }
             }
+
+            e is ForumPostReadEvent -> {
+                updateItem(e.groupId) { it.updateOnPostsRead(e.numMarkedRead) }
+            }
         }
     }