>>107
105 のコードの
(setq *replace-dialog-template* …

(defvar *replace-dialog-template-1* …
と書き換え、replace-dialog を
(let* ((str (selection-start-end (start end)
(goto-char (min start end))
(buffer-substring start end)))
(search (or str
(if *regexp-search*
*last-search-regexp*
*last-search-string*)))
(replace (or str
(if *regexp-search*
*last-replace-regexp*
*last-replace-string*))))
(dialog-box (if str
*replace-dialog-template-1*
*replace-dialog-template*)

と変更で。105 は無理矢理感がひどく、もっとうまいやり方ありそう。