 
         if displayedMessagesRange.location == 0 {
 
+            let timeDirection: TimeDirection
+            var invalidMessageIDSet: Set<String>?
+            if let (message, headInvalidMessageIDSet) = firstValidMessageInMessageResults(messages) {
+                let maxMessageID = message.messageID
+                timeDirection = .Past(maxMessageID: maxMessageID)
+                invalidMessageIDSet = headInvalidMessageIDSet
+            } else {
+                timeDirection = .None
+            }
+
+            loadMessagesFromServer(withTimeDirection: timeDirection, invalidMessageIDSet: invalidMessageIDSet, failed: {
+                completion()
+
+            }, completion: { [weak self] messageIDs, noMore in
+                if case .Past = timeDirection {
+                    self?.noMorePreviousMessages = noMore
+                }
+
+                tryPostNewMessagesReceivedNotificationWithMessageIDs(messageIDs, messageAge: timeDirection.messageAge)
+                //self?.fayeRecievedNewMessages(messageIDs, messageAgeRawValue: timeDirection.messageAge.rawValue)
+
+                self?.isLoadingPreviousMessages = false
+                completion()
+            })
+
+            /*
             guard let recipient = recipient else {
                 completion()
                 return


extension ConversationViewController {

    func tryLoadPreviousMessages(completion: () -> Void) {

        if isLoadingPreviousMessages {

                    completion()
                }
            })
             */

        } else {
            var newMessagesCount = self.messagesBunchCount
