     open var messageLabelFont: UIFont {
         didSet {
             emojiLabelFont = messageLabelFont.withSize(2 * messageLabelFont.pointSize)
-        }
-    }
-
-    /// The font to be used by `TextMessageCell` for `MessageData.emoji(String)` case.
-    ///
-    /// Note: The default value of this property is 2x the `messageLabelFont`.
+            textMessageAttributesCache.removeAllObjects()
+            attributedTextMessageAttributesCache.removeAllObjects()
+            emojiMessageAttributesCache.removeAllObjects()
+        }
+    }
+
     internal var emojiLabelFont: UIFont
 
     // MARK: - Layout

            configure(attributes: attributes)
        }
        return attributes

    }

    // MARK: - Layout Invalidation

        didSet { customMessageAttributesCache.removeAllObjects() }
    }

    private let textMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let attributedTextMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let emojiMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let photoMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let videoMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let locationMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()
    private let customMessageAttributesCache = NSCache<NSString, MessageIntermediateLayoutAttributes>()

    // MARK: - Initializers

