 
         let newMessages = subscription.fetchMessages(lastMessageDate: date)
         if newMessages.count > 0 {
-            messages.append(contentsOf: newMessages)
+            messages.insert(contentsOf: newMessages, at: 0)
             appendMessages(messages: newMessages, updateScrollPosition: true, completion: { [weak self] in
                 if date == nil {
                     self?.scrollToBottom()

        messagesToken?.stop()
        messagesToken = messagesQuery.addNotificationBlock { [weak self] changes in
            switch changes {
            case .initial(let messages):
                self?.appendMessages(messages: self?.messages ?? [], updateScrollPosition: false, completion: {
                    guard let messages = self?.messages else { return }

                    if messages.count == 0 {
                        self?.activityIndicator.startAnimating()
                    } else {
                        self?.scrollToBottom()
                    }

                    self?.isRequestingHistory = false
                })

                break
            case .update(_, _, let insertions, let modifications):
                if insertions.count > 0 {
                    var newMessages: [Message] = []


    internal func updateSubscriptionMessages() {
        messagesQuery = subscription.fetchMessagesQueryResults()

        loadMoreMessagesFrom(date: nil)
        updateMessagesQueryNotificationBlock()

        MessageManager.changes(subscription)
    }
