         formatter.toggleAttribute(inTextView: self, atRange: range)
     }
 
-    /// Refresh blockquotes attributes when inserting new text in the specified range
+    /// Refresh Lists attributes when text is deleted in the specified range
     ///
     /// - Parameters:
     ///   - text: the text being added
     ///   - range: the range of the insertion of the new text
-    private func refreshBlockquotesAfterInsertionOf(text:String, range:NSRange) {
+    private func refreshBlockquoteAfterDeletionOf(text deletedText: NSAttributedString, atRange range:NSRange) {
+        let formatter = BlockquoteFormatter()
+        guard formatter.attribute(inTextView: self, at: range.location),
+            deletedText.string == "\n" || range.location == 0 else {
+                return
+        }
+
+        if (range.location == 0) {
+            formatter.toggleAttribute(inTextView: self, atRange: range)
+        }
+    }
+
+    /// Refresh blockquotes attributes when inserting new text in the specified range
+    ///
+    /// - Parameters:
+    ///   - text: the text being added
+    ///   - range: the range of the insertion of the new text
+    private func refreshBlockquoteAfterInsertionOf(text:String, range:NSRange) {
         let formatter = BlockquoteFormatter()
         guard formatter.attribute(inTextView: self, at: range.location) else {
             return

        super.insertText(text)
        insertionRange.length = 1
        refreshListAfterInsertionOf(text: text, range: insertionRange)
        refreshBlockquotesAfterInsertionOf(text: text, range: insertionRange)
    }

    open override func deleteBackward() {

            return
        }

        if (range.location == 0) {
            removeList(aroundRange: range)
        }
    }
