diff --git a/core/src/main/java/se/su/dsv/scipro/forum/BasicForumService.java b/core/src/main/java/se/su/dsv/scipro/forum/BasicForumService.java
index 6a680ad26f..0d93d6c37a 100644
--- a/core/src/main/java/se/su/dsv/scipro/forum/BasicForumService.java
+++ b/core/src/main/java/se/su/dsv/scipro/forum/BasicForumService.java
@@ -23,4 +23,8 @@ public interface BasicForumService extends Serializable {
     ForumThread createThread(String subject);
 
     long countUnreadThreads(List<ForumThread> forumThreadList, User user);
+
+    ForumPost getLastPost(ForumThread forumThread);
+
+    boolean hasAttachments(ForumThread forumThread);
 }
diff --git a/core/src/main/java/se/su/dsv/scipro/forum/BasicForumServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/forum/BasicForumServiceImpl.java
index c48e3cab91..0e7c7cbaaf 100644
--- a/core/src/main/java/se/su/dsv/scipro/forum/BasicForumServiceImpl.java
+++ b/core/src/main/java/se/su/dsv/scipro/forum/BasicForumServiceImpl.java
@@ -66,7 +66,7 @@ public class BasicForumServiceImpl implements BasicForumService {
 
     @Override
     public boolean isThreadRead(User user, ForumThread forumThread) {
-        for (ForumPost post : forumThread.getPosts()) {
+        for (ForumPost post : getPosts(forumThread)) {
             if (!getReadState(user, post).isRead()) {
                 return false;
             }
@@ -133,4 +133,22 @@ public class BasicForumServiceImpl implements BasicForumService {
 
         return post;
     }
+
+    @Override
+    public ForumPost getLastPost(ForumThread forumThread) {
+        return Collections.max(
+            getPosts(forumThread),
+            Comparator.comparing(ForumPost::getDateCreated).thenComparing(ForumPost::getId)
+        );
+    }
+
+    @Override
+    public boolean hasAttachments(ForumThread forumThread) {
+        for (ForumPost post : getPosts(forumThread)) {
+            if (!post.getAttachments().isEmpty()) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/core/src/main/java/se/su/dsv/scipro/forum/dataobjects/ForumThread.java b/core/src/main/java/se/su/dsv/scipro/forum/dataobjects/ForumThread.java
index 1c61c2c563..f1933e89c0 100644
--- a/core/src/main/java/se/su/dsv/scipro/forum/dataobjects/ForumThread.java
+++ b/core/src/main/java/se/su/dsv/scipro/forum/dataobjects/ForumThread.java
@@ -116,13 +116,4 @@ public class ForumThread extends LazyDeletableDomainObject {
     public User getCreatedBy() {
         return getPosts().get(0).getPostedBy();
     }
-
-    public boolean hasAttachments() {
-        for (ForumPost post : posts) {
-            if (!post.getAttachments().isEmpty()) {
-                return true;
-            }
-        }
-        return false;
-    }
 }
diff --git a/view/src/main/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanel.java b/view/src/main/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanel.java
index 02a9d00bd5..d0e7e1c55d 100644
--- a/view/src/main/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanel.java
+++ b/view/src/main/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanel.java
@@ -1,8 +1,7 @@
 package se.su.dsv.scipro.forum.panels.threaded;
 
+import jakarta.inject.Inject;
 import java.io.Serializable;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
@@ -15,6 +14,7 @@ import org.apache.wicket.model.LambdaModel;
 import org.apache.wicket.model.LoadableDetachableModel;
 import se.su.dsv.scipro.components.DateLabel;
 import se.su.dsv.scipro.data.enums.DateStyle;
+import se.su.dsv.scipro.forum.BasicForumService;
 import se.su.dsv.scipro.forum.Discussable;
 import se.su.dsv.scipro.forum.dataobjects.ForumPost;
 import se.su.dsv.scipro.forum.dataobjects.ForumThread;
@@ -23,6 +23,9 @@ import se.su.dsv.scipro.system.User;
 
 public class ThreadsOverviewPanel<A> extends Panel {
 
+    @Inject
+    private BasicForumService basicForumService;
+
     public ThreadsOverviewPanel(
         final String id,
         final IModel<List<A>> model,
@@ -41,7 +44,7 @@ public class ThreadsOverviewPanel<A> extends Panel {
                             @Override
                             protected void onConfigure() {
                                 super.onConfigure();
-                                setVisibilityAllowed(discussion.getObject().hasAttachments());
+                                setVisibilityAllowed(basicForumService.hasAttachments(discussion.getObject()));
                             }
                         }
                     );
@@ -80,7 +83,7 @@ public class ThreadsOverviewPanel<A> extends Panel {
         BookmarkablePageLink<Void> newThreadLink(String id, IModel<A> thread);
     }
 
-    private static class LastPostColumn extends WebMarkupContainer {
+    private class LastPostColumn extends WebMarkupContainer {
 
         public LastPostColumn(String id, final IModel<ForumThread> model) {
             super(id);
@@ -110,10 +113,7 @@ public class ThreadsOverviewPanel<A> extends Panel {
             return new LoadableDetachableModel<>() {
                 @Override
                 protected ForumPost load() {
-                    return Collections.max(
-                        model.getObject().getPosts(),
-                        Comparator.comparing(ForumPost::getDateCreated).thenComparing(ForumPost::getId)
-                    );
+                    return basicForumService.getLastPost(model.getObject());
                 }
             };
         }
diff --git a/view/src/test/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanelTest.java b/view/src/test/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanelTest.java
index 8c99db6c4f..614f92e7cd 100644
--- a/view/src/test/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanelTest.java
+++ b/view/src/test/java/se/su/dsv/scipro/forum/panels/threaded/ThreadsOverviewPanelTest.java
@@ -9,6 +9,7 @@ import org.apache.wicket.model.Model;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mockito;
 import org.mockito.junit.jupiter.MockitoExtension;
 import se.su.dsv.scipro.SciProTest;
 import se.su.dsv.scipro.forum.Discussable;
@@ -20,11 +21,13 @@ import se.su.dsv.scipro.system.User;
 public class ThreadsOverviewPanelTest extends SciProTest {
 
     private List<ForumThread> threads;
+    private ForumPost post;
 
     @BeforeEach
     public void setUp() throws Exception {
         ForumThread forumThread = createThread();
         threads = Arrays.asList(forumThread);
+        Mockito.when(basicForumService.getLastPost(forumThread)).thenReturn(post);
     }
 
     @Test
@@ -54,7 +57,7 @@ public class ThreadsOverviewPanelTest extends SciProTest {
 
     private ForumThread createThread() {
         User bob = User.builder().firstName("Bob").lastName("the Builder").emailAddress("bob@building.com").build();
-        ForumPost post = new ForumPost();
+        post = new ForumPost();
         post.setPostedBy(bob);
         ForumThread groupForumThread = new ForumThread();
         groupForumThread.addPost(post);