anchor.diff:         (declare (type packet packet)
   		(ignore type)
   		(type (unsigned-byte ,(* bytes 8)) value))
  -       (add-bytes packet
  -		  ,@(loop :for ii :from (- bytes 1) :downto 0
  -		       :collecting `(ldb (byte 8 ,(* ii 8)) value))))
  +       (add-bytes-helper packet value ,bytes))
        (defmethod unserialize (packet (type (eql ,key)))
          (declare (type packet packet)
   		(ignore type))
  -       (let ((value 0))
  -	 (declare (type (unsigned-byte ,(* bytes 8)) value))
  -	 (let ((packet (get-bytes packet
  -				  ,@(loop :for ii :from (- bytes 1) :downto 0
  -				       :collecting
  -				       `(ldb (byte 8 ,(* ii 8)) value)))))
  -	   (declare (type packet packet))
  -	   (values value packet))))))
  +       (get-bytes-helper packet value ,bytes))))
   
   ;;; unsigned-int serialization
   (make-uint-serializer :uint8  1)
  
positive.code: 	    `(get-bytes ,pkt ,@other-places)
  	    pkt))))
  
  ;;; help build integer serialize/unserialize methods
  (defmacro make-uint-serializer (key bytes)
    `(progn
  
negative.code:     (incf (fill-pointer packet) length)
      (setf (subseq packet start (+ start length)) value)
      packet))
  
  (defmethod unserialize (packet (type (eql :bytes)))
    (declare (type packet packet)
  