                     // double check
                     if indexPaths.count == (strongSelf.messages.count - _lastTimeMessagesCount) {
                         strongSelf.conversationCollectionView.insertItemsAtIndexPaths(indexPaths)
+
                     } else {
                         strongSelf.conversationCollectionView.reloadSections(NSIndexSet(index: Section.Message.rawValue))
                         strongSelf.lastTimeMessagesCount = strongSelf.messages.count
-                        println("double check failed!")
+                        println("double check failed! \(strongSelf.messages.count), \(_lastTimeMessagesCount)")
                     }
 
                 }, completion: nil)

                        message = messageWithMessageID(messageID, inRealm: realm),
                        index = messages.indexOf(message) {
                        let indexPath = NSIndexPath(forItem: index - displayedMessagesRange.location, inSection: Section.Message.rawValue)
                        //println("insert item: \(indexPath.item), \(index), \(displayedMessagesRange.location)")

                        indexPaths.append(indexPath)

                    } else {

                        // double check
                        if indexPaths.count == (strongSelf.messages.count - _lastTimeMessagesCount) {
                            strongSelf.conversationCollectionView.insertItemsAtIndexPaths(indexPaths)

                        } else {
                            strongSelf.conversationCollectionView.reloadSections(NSIndexSet(index: Section.Message.rawValue))
                            strongSelf.lastTimeMessagesCount = strongSelf.messages.count
                            println("double check failed! \(strongSelf.messages.count), \(_lastTimeMessagesCount)")
                        }

                    }, completion: { [weak self] finished in
