diff --git a/changelog.d/8187.bugfix b/changelog.d/8187.bugfix
new file mode 100644
index 0000000000..e0a9dd3a29
--- /dev/null
+++ b/changelog.d/8187.bugfix
@@ -0,0 +1 @@
+Extend workaround for extra new lines in timeline
\ No newline at end of file
diff --git a/vector/src/androidTest/java/im/vector/app/core/utils/TestSpan.kt b/vector/src/androidTest/java/im/vector/app/core/utils/TestSpan.kt
index 1d0d6548e1..ebbe565642 100644
--- a/vector/src/androidTest/java/im/vector/app/core/utils/TestSpan.kt
+++ b/vector/src/androidTest/java/im/vector/app/core/utils/TestSpan.kt
@@ -20,6 +20,7 @@ import android.graphics.Canvas
 import android.graphics.Paint
 import android.text.Layout
 import android.text.Spanned
+import android.text.style.StrikethroughSpan
 import androidx.core.text.getSpans
 import im.vector.app.features.html.HtmlCodeSpan
 import io.element.android.wysiwyg.spans.InlineCodeSpan
@@ -28,6 +29,7 @@ import io.mockk.mockk
 import io.mockk.slot
 import io.mockk.verify
 import io.noties.markwon.core.spans.EmphasisSpan
+import io.noties.markwon.core.spans.LinkSpan
 import io.noties.markwon.core.spans.OrderedListItemSpan
 import io.noties.markwon.core.spans.StrongEmphasisSpan
 import me.gujun.android.span.style.CustomTypefaceSpan
@@ -59,6 +61,8 @@ private fun Any.readTags(): SpanTags {
         StrongEmphasisSpan::class -> "bold"
         EmphasisSpan::class, CustomTypefaceSpan::class -> "italic"
         InlineCodeSpan::class -> "inline code"
+        StrikethroughSpan::class -> "strikethrough"
+        LinkSpan::class -> "link"
         else -> if (this::class.qualifiedName!!.startsWith("android.widget")) {
             null
         } else {
diff --git a/vector/src/androidTest/java/im/vector/app/features/html/EventHtmlRendererTest.kt b/vector/src/androidTest/java/im/vector/app/features/html/EventHtmlRendererTest.kt
index c095b33b44..94d60538d9 100644
--- a/vector/src/androidTest/java/im/vector/app/features/html/EventHtmlRendererTest.kt
+++ b/vector/src/androidTest/java/im/vector/app/features/html/EventHtmlRendererTest.kt
@@ -73,6 +73,30 @@ class EventHtmlRendererTest {
         result shouldBeEqualTo "__italic__ **bold**"
     }
 
+    // https://github.com/noties/Markwon/issues/423
+    @Test
+    fun doesNotIntroduceExtraNewLines() {
+        // Given initial render (required to trigger bug)
+        """Some <i>italic</i>""".renderAsTestSpan()
+        val results = arrayOf(
+                """Some <i>italic</i>""".renderAsTestSpan(),
+                """Some <b>bold</b>""".renderAsTestSpan(),
+                """Some <code>code</code>""".renderAsTestSpan(),
+                """Some <a href="link">link</a>""".renderAsTestSpan(),
+                """Some <del>strikethrough</del>""".renderAsTestSpan(),
+                """Some <span>span</span>""".renderAsTestSpan(),
+        )
+
+        results shouldBeEqualTo arrayOf(
+                "Some [italic]italic[/italic]",
+                "Some [bold]bold[/bold]",
+                "Some [inline code]code[/inline code]",
+                "Some [link]link[/link]",
+                "Some \n[strikethrough]strikethrough[/strikethrough]", // FIXME
+                "Some \nspan", // FIXME
+        )
+    }
+
     @Test
     fun processesHtmlWithinCodeBlocks() {
         val result = """<code><i>italic</i> <b>bold</b></code>""".renderAsTestSpan()
diff --git a/vector/src/main/java/im/vector/app/features/html/EventHtmlRenderer.kt b/vector/src/main/java/im/vector/app/features/html/EventHtmlRenderer.kt
index e75d12f1d8..cb3f12d867 100644
--- a/vector/src/main/java/im/vector/app/features/html/EventHtmlRenderer.kt
+++ b/vector/src/main/java/im/vector/app/features/html/EventHtmlRenderer.kt
@@ -31,6 +31,9 @@ import android.graphics.Typeface
 import android.graphics.drawable.Drawable
 import android.text.Spannable
 import android.text.SpannableStringBuilder
+import android.text.style.StrikethroughSpan
+import android.text.style.URLSpan
+import android.text.style.UnderlineSpan
 import android.widget.TextView
 import androidx.core.text.toSpannable
 import com.bumptech.glide.Glide
@@ -46,6 +49,8 @@ import io.noties.markwon.Markwon
 import io.noties.markwon.MarkwonPlugin
 import io.noties.markwon.MarkwonSpansFactory
 import io.noties.markwon.PrecomputedFutureTextSetterCompat
+import io.noties.markwon.core.spans.EmphasisSpan
+import io.noties.markwon.core.spans.StrongEmphasisSpan
 import io.noties.markwon.ext.latex.JLatexMathPlugin
 import io.noties.markwon.ext.latex.JLatexMathTheme
 import io.noties.markwon.html.HtmlPlugin
@@ -154,14 +159,24 @@ class EventHtmlRenderer @Inject constructor(
     /**
      * Workaround for https://github.com/noties/Markwon/issues/423
      */
-    private val removeLeadingNewlineForInlineCode = object : AbstractMarkwonPlugin() {
+    private val removeLeadingNewlineForInlineElement = object : AbstractMarkwonPlugin() {
         override fun afterSetText(textView: TextView) {
             super.afterSetText(textView)
 
             val text = SpannableStringBuilder(textView.text.toSpannable())
-            val inlineCodeSpans = text.getSpans(0, textView.length(), InlineCodeSpan::class.java).toList()
-            val legacyInlineCodeSpans = text.getSpans(0, textView.length(), HtmlCodeSpan::class.java).filter { !it.isBlock }
-            val spans = inlineCodeSpans + legacyInlineCodeSpans
+            val length = textView.length()
+            val spans = arrayOf(
+                    InlineCodeSpan::class.java,
+                    EmphasisSpan::class.java,
+                    CustomTypefaceSpan::class.java,
+                    StrongEmphasisSpan::class.java,
+                    UnderlineSpan::class.java,
+                    URLSpan::class.java,
+                    StrikethroughSpan::class.java
+            ).map { text.getSpans(0, length, it) }
+                    .toTypedArray()
+                    .plus(text.getSpans(0, length, HtmlCodeSpan::class.java).filter { !it.isBlock }.toTypedArray())
+                    .flatten()
 
             if (spans.isEmpty()) return
 
@@ -179,11 +194,11 @@ class EventHtmlRenderer @Inject constructor(
     private val markwon = Markwon.builder(context)
             .usePlugin(HtmlRootTagPlugin())
             .usePlugin(HtmlPlugin.create(htmlConfigure))
-            .usePlugin(removeLeadingNewlineForInlineCode)
+            .usePlugin(removeLeadingNewlineForInlineElement)
             .usePlugin(glidePlugin)
             .apply {
                 if (vectorPreferences.latexMathsIsEnabled()) {
-                    // If latex maths is enabled in app preferences, refomat it so Markwon recognises it
+                    // If latex maths is enabled in app preferences, reformat it so Markwon recognises it
                     // It needs to be in this specific format: https://noties.io/Markwon/docs/v4/ext-latex
                     latexPlugins.forEach(::usePlugin)
                 }