diff --git a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt
index a85afa7d6..68a6edfe5 100644
--- a/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt
+++ b/src/all/mangadex/src/eu/kanade/tachiyomi/extension/all/mangadex/MangaDexHelper.kt
@@ -61,21 +61,16 @@ class MangaDexHelper() {
     fun getLatestChapterOffset(page: Int): String = (MDConstants.latestChapterLimit * (page - 1)).toString()
 
     /**
-     * Remove bbcode tags as well as parses any html characters in description or
+     * Remove markdown links as well as parse any html characters in description or
      * chapter name to actual characters for example ♥ will show ♥
      */
     fun cleanString(string: String): String {
-        val bbRegex =
-            """\[(\w+)[^]]*](.*?)\[/\1]""".toRegex()
-        var intermediate = string
-            .replace("[list]", "")
-            .replace("[/list]", "")
-            .replace("[*]", "")
-        // Recursively remove nested bbcode
-        while (bbRegex.containsMatchIn(intermediate)) {
-            intermediate = intermediate.replace(bbRegex, "$2")
-        }
-        return Parser.unescapeEntities(intermediate, false)
+        val unescapedString = Parser.unescapeEntities(string, false)
+
+        return unescapedString
+            .substringBefore("---")
+            .replace(markdownLinksRegex, "$1")
+            .trim()
     }
 
     /**
@@ -112,6 +107,8 @@ class MangaDexHelper() {
         val USE_CACHE = CacheControl.Builder()
             .maxStale(Integer.MAX_VALUE, TimeUnit.SECONDS)
             .build()
+
+        val markdownLinksRegex = "\\[([^]]+)\\]\\(([^)]+)\\)".toRegex()
     }
 
     // Check the token map to see if the md@home host is still valid