Adrian Aichner writes:
 >>>>> "Kyle" == Kyle Jones
<kyle_jones(a)wonderworks.com> writes:
 
     Kyle> Uh-oh.  Have we changed the parameter list of completing-read so
     Kyle> that old code is now broken?  If so, this is very bad.
 
 As Hrvoje already said, the problem is not with completing-read.
 
 bookmark.el using a parameter not avaliable in XEmacs-21.1.8's
 completing-read indiscriminately in the real problem I think.
 
 What is recommended good practice here?
 
 Should bookmark.el not use the new argument available in
 XEmacs-21.2-b26 to stay compatible with XEmacs-21.1.8?
 
 Should bookmark.el conditionalize on the version of XEmacs it is running in? 
The way I do it in VM is call the function and if
wrong-number-of-arguments is signalled, I catch the exception and
call the function again with fewer arguments.  Example:
get-buffer-window now accepts three aguments, but it wasn't
always this way.
(defun vm-get-buffer-window (buffer)
  (condition-case nil
      (or (get-buffer-window buffer nil nil)
	  (and vm-search-other-frames
	       (get-buffer-window buffer t t)))
    (wrong-number-of-arguments
     (condition-case nil
	 (or (get-buffer-window buffer nil)
	     (and vm-search-other-frames
		  (get-buffer-window buffer t)))
       (wrong-number-of-arguments
	(get-buffer-window buffer))))))