anchor.diff:    (mezzano.supervisor:with-mutex (*tcp-connection-lock*)
       (setf *tcp-connections* (remove connection *tcp-connections*))))
   
  -(defun tcp4-receive-data (connection data-length end header-length packet seq start state)
  +(defun tcp4-receive-data (connection data-length end header-length packet seq start)
     (cond ((= seq (tcp-connection-r-next connection))
            ;; Send data to the user layer
            (if (tcp-connection-rx-data connection)
  
positive.code:                      (logand (+ (tcp-connection-r-next connection) 1)
                               #xFFFFFFFF))
                 (tcp4-send-packet connection ack seq nil :ack-p t))
               (tcp4-receive-data connection data-length end header-length packet seq start :established)))
          (:close-wait
           ;; Remote has closed, local can still send data.
           ;; Not much to do here, just waiting for the application to close.
  
negative.code:                      ((logtest flags +tcp4-flag-ack+)
                        ;; Remote saw our FIN
                        (setf (tcp-connection-state connection) :fin-wait-2))))
               (tcp4-receive-data connection data-length end header-length packet seq start)))
          (:fin-wait-2
           ;; Local closed, still waiting for remote to close.
           (if (zerop data-length)
  