     deinit {
         tableNode.dataSource = nil
         tableNode.delegate = nil
+
+        NSNotificationCenter.defaultCenter().removeObserver(self)
 
         println("deinit ChatViewController")
     }

        guard let message = messages[safe: (displayedMessagesRange.location + indexPath.row)] where message.isReal else {
            return false
        }

        var canReport = false


            }
        }

        do {
            NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChatViewController.didRecieveMenuWillShowNotification(_:)), name: UIMenuControllerWillShowMenuNotification, object: nil)

            NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChatViewController.didRecieveMenuWillHideNotification(_:)), name: UIMenuControllerWillHideMenuNotification, object: nil)
        }

        let scrollToBottom: dispatch_block_t = { [weak self] in
            guard let strongSelf = self else {
                return
