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 44ff9f407a..57cb619100 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
@@ -22,6 +22,8 @@ public interface BasicForumService extends Serializable {
 
     ForumThread createThread(String subject);
 
+    ForumThread findThreadById(Long id);
+
     long countUnreadThreads(List<ForumThread> forumThreadList, User user);
 
     ForumPost getLastPost(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 5591930bf2..ed3da2c4a0 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
@@ -91,6 +91,11 @@ public class BasicForumServiceImpl implements BasicForumService {
         return threadRepository.save(forumThread);
     }
 
+    @Override
+    public ForumThread findThreadById(Long id) {
+        return threadRepository.findOne(id);
+    }
+
     @Override
     public long countUnreadThreads(List<ForumThread> forumThreadList, User user) {
         return postRepository.countUnreadThreads(forumThreadList, user);
@@ -184,8 +189,12 @@ public class BasicForumServiceImpl implements BasicForumService {
         if (!canDelete(post)) {
             throw new PostCantBeDeletedException();
         }
-        post.setDeleted(true);
-        postRepository.save(post);
+        if (isInitialPost(post)) {
+            threadRepository.delete(post.getForumThread());
+        } else {
+            post.setDeleted(true);
+            postRepository.save(post);
+        }
     }
 
     private static final class PostCantBeDeletedException extends IllegalArgumentException {
diff --git a/core/src/test/java/se/su/dsv/scipro/forum/BasicForumServiceIntegrationTest.java b/core/src/test/java/se/su/dsv/scipro/forum/BasicForumServiceIntegrationTest.java
index c654be9b93..3c35391a5f 100644
--- a/core/src/test/java/se/su/dsv/scipro/forum/BasicForumServiceIntegrationTest.java
+++ b/core/src/test/java/se/su/dsv/scipro/forum/BasicForumServiceIntegrationTest.java
@@ -6,6 +6,7 @@ import static org.hamcrest.Matchers.hasItem;
 import static org.hamcrest.Matchers.not;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -195,4 +196,17 @@ public class BasicForumServiceIntegrationTest extends IntegrationTest {
 
         assertThat(getPublishedEvents(), not(hasItem(new ForumPostReadEvent(post, commenter))));
     }
+
+    @Test
+    public void deleting_initial_post_removes_entire_thread() {
+        ForumThread thread = basicForumService.createThread("Test thread");
+        ForumPost post = basicForumService.createReply(thread, op, "Test post 1", Set.of());
+
+        setLoggedInAs(op);
+
+        basicForumService.deletePost(post);
+
+        ForumThread threadById = basicForumService.findThreadById(thread.getId());
+        assertNull(threadById, "Thread was not deleted");
+    }
 }