anchor.diff:                                                            :name "Ethernet thread"))
   
   (defun detach-tcp-connection (connection)
  -  (setf *tcp-connections* (remove connection *tcp-connections*))
  +  (mezzanine.supervisor:with-mutex (*tcp-connection-lock*)
  +    (setf *tcp-connections* (remove connection *tcp-connections*)))
     (setf *allocated-tcp-ports* (remove (tcp-connection-local-port connection) *allocated-tcp-ports*)))
   
   (defun tcp4-receive (connection packet &optional (start 0) end)
  
positive.code: 
  (defvar *raw-packet-hooks* nil)
  (defvar *tcp-connections* nil)
  (defvar *allocated-tcp-ports* nil)
  (defvar *server-alist* '())
  
  (defun get-tcp-connection (remote-ip remote-port local-port)
    (dolist (connection *tcp-connections*)
      (when (and (eql (tcp-connection-remote-ip connection) remote-ip)
                 (eql (tcp-connection-remote-port connection) remote-port)
                 (eql (tcp-connection-local-port connection) local-port))
        (return connection))))
  
  (defun %tcp4-receive (packet remote-ip start end)
    (let* ((remote-port (ub16ref/be packet start))
  
negative.code: 					  :s-next (logand #xFFFFFFFF (1+ seq))
  					  :r-next 0
  					  :window-size 8192)))
      (mezzanine.supervisor:with-mutex (*tcp-connection-lock*)
        (push connection *tcp-connections*))
      (tcp4-send-packet connection seq 0 nil :ack-p nil :syn-p t)
      ;; FIXME: Timeouts
      (with-tcp-connection-locked connection
        (loop
           (when (not (eql (tcp-connection-state connection) :syn-sent))
             (return))
           (mezzanine.supervisor:condition-wait (tcp-connection-cvar connection)
                                                (tcp-connection-lock connection))))
      connection))
  
  (defun tcp-send (connection data &optional (start 0) end)
  