anchor.diff:    (%write-rod name sink)
     (cond
       ((zerop (length public-id))
  -      (%write-rod #" SYSTEM '" sink)
  -      (%write-rod system-id sink)
  -      (%write-rune #/' sink))
  +      (%write-rod #" SYSTEM " sink)
  +      (write-quoted-rod system-id sink))
       ((zerop (length system-id))
  -      (%write-rod #" PUBLIC '" sink)
  -      (%write-rod public-id sink)
  -      (%write-rune #/' sink))
  +      (%write-rod #" PUBLIC " sink)
  +      (write-quoted-rod public-id sink))
       (t 
  -      (%write-rod #" PUBLIC '" sink)
  -      (%write-rod public-id sink)
  -      (%write-rod #"' '" sink)
  -      (%write-rod system-id sink)
  -      (%write-rune #/' sink)))
  +      (%write-rod #" PUBLIC " sink)
  +      (write-quoted-rod public-id sink)
  +      (%write-rod #" " sink)
  +      (write-quoted-rod system-id sink)))
     (%write-rune #/> sink)
     (%write-rune #/U+000A sink))
   
  
positive.code:         (%write-rod #"\"" sink)))))
  
  (defmethod sax:start-internal-subset ((sink sink))
    (ensure-doctype sink)
    (%write-rod #" [" sink)
    (%write-rune #/U+000A sink))
  
negative.code: (defmethod sax:end-internal-subset ((sink sink))
    (ensure-doctype sink)
    (%write-rod #"]" sink))
  
  (defmethod sax:unparsed-internal-subset ((sink sink) str)
    (when (have-internal-subset sink)
      (error "duplicate internal subset"))
    (setf (have-internal-subset sink) t)
    (ensure-doctype sink)
    (%write-rod #" [" sink)
    (%write-rune #/U+000A sink)
    (unparse-string str sink)
    (%write-rod #"]" sink))
  
  ;; for the benefit of the XML test suite, prefer ' over "
  (defun write-quoted-rod (x sink)
    (let ((q (if (find #/' x) #/" #/'
                 ;; '" (thanks you Emacs indentation, the if ends here)
  		     )))
      (%write-rune q sink)
      (%write-rod x sink)
      (%write-rune q sink)))
  
  (defmethod sax:notation-declaration ((sink sink) name public-id system-id)
    (let ((prev (previous-notation sink)))
  