anchor.diff:        (warn-user "UCS string has odd length, decrementing by 1")
         (decf len 1))
   
  +    (when (= 0 len)
  +      (return-from stream-read-ucs-string ""))
  +
       (when (eql kind :ucs-2)
         (setf start 2)
         (let ((bom (get-byte-order-mark octets)))
  
positive.code: 
    (let (octets)
      (if (null len)
          (setf octets (flex:with-output-to-sequence (out)
                    (do ((b (stream-read-u8 instream)
                            (stream-read-u8 instream)))
                        (nil)
                      (when (zerop b)
                        (return))
                      (write-byte b out))))
          (setf octets  (stream-read-sequence instream len)))
      (flex:octets-to-string octets :external-format :utf-8)))
  
  
  
negative.code: 
    (let (octets)
      (if (null len)
          (progn
            (setf octets
                  (flex:with-output-to-sequence (out)
                    (do ((b (stream-read-u8 instream) (stream-read-u8 instream)))
                        (nil)
                      (when (zerop b)
                        (return))         ; leave loop w/o writing
                      (write-byte b out))))
            (setf len (length octets)))
          (setf octets (stream-read-sequence instream len)))
  
      (when (= 0 len)
        (return-from stream-read-iso-string ""))
  
      (flex:octets-to-string octets :external-format :iso-8859-1)))
  
  (defun get-byte-order-mark (octets)
  