anchor.diff:        (handler-case
             (send-irc-message msg)
           (condition (e)
  -          (format
  -           t
  -           "WARNING, can not send message! Reason: ~S" e)
  -          (push-msg-pool msg)
  -          (irc-reconnect
  -           0
  -           (lambda ()
  -             (clear-msg-pool-f 1))))))))
  +          (progn
  +            (format *stdout*
  +                    "WARNING, can not send message! Reason: ~S" e)
  +            (push-msg-pool msg)))))))
   
   (defun tg-getupdate-loop ()
     "Need a `overheat' protection"
  
positive.code:   (tryto (quit *irc-connection* "leaving")))
  
  (defun irc-check-connection ()
    (let ((ping-time (get-universal-time)))
      (ping *irc-connection* *irc-channel*)
      (sleep 20)
      (let ((pong-time *pong*))
        (if (> (- pong-time ping-time) 20)
            (progn (tryto (send-tg-message "Reconnecting to IRC"))
                   (tryto (irc-reconnect 1)))
            nil))))
  
  ;;;; -----------------------------------------
  
  
negative.code: 
  (defparameter *tg-loop* nil)
  (defparameter *irc-watcher* nil)
  (defvar *irc-reconnect-counter* 0)
  
  (defun creat-watcher ()
    (format *stdout* "Create IRC watcher~%")
    (setf *irc-watcher*
          (sb-thread:make-thread
           (lambda ()
             (loop
                (sleep 60)
                (format *stdout* "Checking IRC Connection ...")
                (if (irc-check-connection)
                    (progn
                      (format *stdout* "OK!~%")
                      (format *stdout* "Trying to clear Msg Pool~%")
                      (clear-msg-pool-f)
                      (setf *irc-reconnect-counter* 0))
                    (progn
                      (format *stdout*
                              "FAILED! RECONNECTING!~%")
                      (incf *irc-reconnect-counter*)
                      (if (> 20 *irc-reconnect-counter*)
                          (handler-case (irc-reconnect)
                            (condition (e)
                              (format *stdout*
                                      "Having Trouble: ~S~%"
                                      e)))
                          (progn (format *stdout*
                                         "~%Give up, Bot halt!~%")
                                 (bot-halt))))))))))
  
  (defun bot-start ()
    (irc-reconnect)
    (format *stdout* "Creat TG LOOP~%")
    (setf *tg-loop* (sb-thread:make-thread #'tg-getupdate-loop))
    (sleep 10)
    (creat-watcher))
  
  
  (defun bot-halt ()
    (tryto (sb-thread:terminate-thread *tg-loop*))
  