             HeaderFormatter(headerLevel: .h6, placeholderAttributes: [:])
         ]
 
-        for formatter in formatters where formatter.present(in: typingAttributesSwifted) {
-            typingAttributesSwifted = formatter.remove(from: typingAttributesSwifted)
+        var updatedTypingAttributes = typingAttributesSwifted
+        var needsRefresh = false
+
+        for formatter in formatters where formatter.present(in: updatedTypingAttributes) {
+            updatedTypingAttributes = formatter.remove(from: updatedTypingAttributes)
+            needsRefresh = true
 
             let applicationRange = formatter.applicationRange(for: selectedRange, in: textStorage)
             formatter.removeAttributes(from: textStorage, at: applicationRange)
+        }
+
+        if needsRefresh {
+            typingAttributesSwifted = updatedTypingAttributes
         }
     }
 

            TextListFormatter(style: .unordered)
        ]

        let found = formatters.first { formatter in
            return formatter.present(in: typingAttributesSwifted)
        }

        guard found != nil else {


    // MARK: - Apparance Properties

    /// Blockquote Blocks Border Color.
    ///
    @objc dynamic public var blockquoteBorderColor: UIColor {
        get {
