     
     // MARK: - Private
     
-    private func createTimestampLabel(cellData: MXKRoomBubbleCellData, bubbleComponent: MXKRoomBubbleComponent, viewTag: Int) -> UILabel {
+    private func createTimestampLabel(cellData: MXKRoomBubbleCellData, bubbleComponent: MXKRoomBubbleComponent, viewTag: Int, textColor: UIColor) -> UILabel {
         
         let timeLabel = UILabel()
 
         timeLabel.text = cellData.eventFormatter.timeString(from: bubbleComponent.date)
         timeLabel.textAlignment = .right
-        timeLabel.textColor = ThemeService.shared().theme.textSecondaryColor
-        timeLabel.font = UIFont.systemFont(ofSize: 11, weight: .light)
+        timeLabel.textColor = textColor
+        timeLabel.font = self.theme.fonts.caption2
         timeLabel.adjustsFontSizeToFitWidth = true
         timeLabel.tag = viewTag
         timeLabel.accessibilityIdentifier = "timestampLabel"
         
         return timeLabel
+    }
+    
+    func createTimestampLabel(for cellData: RoomBubbleCellData) -> UILabel? {
+        return self.createTimestampLabel(for: cellData, textColor: self.theme.textSecondaryColor)
+    }
+    
+    private func createTimestampLabel(for cellData: RoomBubbleCellData, textColor: UIColor) -> UILabel? {
+        
+        let componentIndex = cellData.mostRecentComponentIndex
+        
+        guard let bubbleComponents = cellData.bubbleComponents,
+              componentIndex < bubbleComponents.count else {
+                  return nil
+              }
+        
+        let component = bubbleComponents[componentIndex]
+
+        return self.createTimestampLabel(cellData: cellData, bubbleComponent: component, viewTag: componentIndex, textColor: textColor)
     }
     
     private func canShowTimestamp(forCellData cellData: MXKRoomBubbleCellData) -> Bool {

                trailingConstraint,
                bottomConstraint
            ])
        } else {
            super.addTimestampLabel(toCell: cell, cellData: cellData)
        }

            return true
        default:
            break
        }
        
        if let attachmentType = cellData.attachment?.type {
            switch attachmentType {
            case .voiceMessage, .audio:
                return true
            case .sticker:
                // Do not show timestamp for stickers atm
                return false
            default:
                break
            }
        }
        
        if cellData.isAttachmentWithThumbnail {
            return true
        }
        
        switch firstEvent.eventType {
