anchor.diff:    ;; free the SSL ctx (if it exists)
     (close-ssl (tcp-server-ssl-as-ssl tcp-server)))
   
  -(defun write-to-ssl (as-ssl 
  +(defun write-to-ssl (as-ssl data)
  +  "Write data into SSL."
  +  (let ((ssl (as-ssl-ssl as-ssl)))
  +    (do-chunk-data data *output-buffer*
  +      (lambda (buffer bufsize)
  +        (ssl-write ssl buffer bufsize)))))
  +
   (defmethod write-socket-data ((socket ssl-socket) data &key read-cb write-cb event-cb force)
     (let ((uvstream (socket-c socket))
           (do-send (lambda ()
  -                   (write-to-ssl (socket-ssl-as-ssl socket) data))))
  +                   (write-to-ssl (socket-as-ssl socket) data))))
       (if (or read-cb write-cb event-cb)
           ;; we're specifying callbacks. since we're most likely calling this from
           ;; inside a socket callback and we don't necessarily want to overwrite
  
positive.code:              (when connect-cb
                 (funcall connect-cb sock)))
             (read-cb (sock data)
               (
               (let ((data (if (typep data 'as:async-stream)
                               (let ((buf (make-buffer))
                                     (stream-buf (make-array 8096 :element-type 'as:octet)))
  
negative.code:   ((ctx :accessor as-ssl-ctx :initarg :ctx :initform nil)
     (bio-read :accessor as-ssl-bio-read :initarg :bio-read :initform nil)
     (bio-write :accessor as-ssl-bio-write :initarg :bio-write :initform nil)
     (ssl :accessor as-ssl-ssl :initarg :ssl :initform nil)
     (freed :accessor as-ssl-freed :initform nil)))
  
  (defclass ssl-socket (socket)
    ((as-ssl :accessor socket-as-ssl :initarg :as-ssl :initform nil)
     (ssl-closing :accessor socket-ssl-closing :initform nil))
    (:documentation "Wraps a libevent SSL socket."))
  
  (defclass tcp-ssl-server (tcp-server)
  