     }
 
 
-    /// Inserts an empty line, whenever we're at the end of the document, and there's no selected text.
-    ///
-    private func ensureInsertionOfNewlineOnEmptyDocuments() {
-        guard selectedRange.location == storage.length && selectedRange.length == 0 else {
-            return
-        }
-
+    /// Inserts an empty line whenever we're at the end of the document
+    ///
+    private func ensureInsertionOfNewlineWhenEditingEdgeOfTheDocument() {
+        guard selectedRange.location == storage.length else {
+            return
+        }
+
+        insertNewline()
+    }
+
+
+    /// Inserts an empty line whenever:
+    ///
+    ///     A.  We're about to insert a new line
+    ///     B.  We're at the end of the document
+    ///     C.  There's a List (OR) Blockquote active
+    ///
+    /// We're doing this as a workaround, in order to force the LayoutManager render the Bullet (OR) 
+    /// Blockquote's background.
+    ///
+    private func ensureInsertionOfNewline(beforeInserting text: String) {
+        guard text == String(.newline) else {
+            return
+        }
+
+        guard selectedRange.location == storage.length else {
+            return
+        }
+
+        guard BlockquoteFormatter().present(in: typingAttributes) ||
+            TextListFormatter(style: .ordered).present(in: typingAttributes) ||
+            TextListFormatter(style: .unordered).present(in: typingAttributes)
+        else {
+            return
+        }
+
+        insertNewline()
+    }
+
+
+    /// Inserts a New Line at the current position, while retaining the selectedRange and typingAttributes.
+    ///
+    private func insertNewline() {
         let previousRange = selectedRange
         let previousStyle = typingAttributes
 


    open override func insertText(_ text: String) {

        /// Insert `\n` characters whenever we're in a Text List, the user presses \n, and we're literally
        /// at the End of the Document.
        ///
        if TextListFormatter.listsOfAnyKindPresent(in: typingAttributes) {
            ensureInsertionOfNewlineOnEmptyDocuments()
        }

        // Note:
        // Whenever the entered text causes the Paragraph Attributes to be removed, we should prevent the actual

    /// - Parameter range: The NSRange to edit.
    ///
    open func toggleOrderedList(range: NSRange) {
        ensureInsertionOfNewlineWhenEditingEdgeOfTheDocument()

        let formatter = TextListFormatter(style: .ordered, placeholderAttributes: typingAttributes)
        toggle(formatter: formatter, atRange: range)
