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 3670303703bdce944844fb50e7fd122e5d9d685f..7a10cd643883a0cbef15204220174d484061da8e 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
@@ -80,7 +80,6 @@ class ForumViewModel @Inject constructor(
 
     override fun onInit() {
         super.onInit()
-        threadViewModel.forumViewModel = this
         loadGroups()
     }
 
@@ -127,7 +126,7 @@ class ForumViewModel @Inject constructor(
 
     fun selectGroup(groupItem: GroupItem) {
         _selectedGroupItem.value = groupItem
-        threadViewModel.setGroupItem(groupItem)
+        threadViewModel.setGroupItem(groupItem, this::addOwnPost)
     }
 
     fun isSelected(groupId: GroupId) = _selectedGroupItem.value?.id == groupId
diff --git a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt
index 78ad948c82a4ff67175adf1cc637ec523a4f7073..b196a0232a6c6a6557aacc3a777e42bf5c05e0a7 100644
--- a/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt
+++ b/briar-desktop/src/main/kotlin/org/briarproject/briar/desktop/forums/ThreadedConversationViewModel.kt
@@ -36,6 +36,7 @@ import org.briarproject.bramble.api.sync.MessageId
 import org.briarproject.bramble.api.system.Clock
 import org.briarproject.briar.api.client.MessageTracker
 import org.briarproject.briar.api.forum.ForumManager
+import org.briarproject.briar.api.forum.ForumPostHeader
 import org.briarproject.briar.api.forum.event.ForumPostReceivedEvent
 import org.briarproject.briar.client.MessageTreeImpl
 import org.briarproject.briar.desktop.threading.BriarExecutors
@@ -61,11 +62,11 @@ class ThreadedConversationViewModel @Inject constructor(
         private val LOG = getLogger(ThreadedConversationViewModel::class.java)
     }
 
-    lateinit var forumViewModel: ForumViewModel
-
     lateinit var groupItem: GroupItem
         private set
 
+    private lateinit var onPostAdded: (header: ForumPostHeader) -> Unit
+
     private val _posts = mutableStateOf<PostsState>(Loading)
     val posts = _posts.asState()
 
@@ -73,8 +74,9 @@ class ThreadedConversationViewModel @Inject constructor(
     val selectedPost = _selectedPost.asState()
 
     @UiExecutor
-    fun setGroupItem(groupItem: GroupItem) {
+    fun setGroupItem(groupItem: GroupItem, onPostAdded: (header: ForumPostHeader) -> Unit) {
         this.groupItem = groupItem
+        this.onPostAdded = onPostAdded
         _selectedPost.value = null
         loadPosts(groupItem.id)
     }
@@ -124,9 +126,9 @@ class ThreadedConversationViewModel @Inject constructor(
         runOnDbThreadWithTransaction(false) { txn ->
             val header = forumManager.addLocalPost(txn, post)
             txn.attach {
-                forumViewModel.addOwnPost(header)
                 val item = ForumPostItem(header, text)
                 addItem(item, item.id)
+                onPostAdded(header)
                 // unselect post that we just replied to
                 if (parentId != null) {
                     _selectedPost.value = null