In the body of kill-region there is a statement as (when string (if (eq last-command 'kill-region) ;; if true, prepend string (kill-append string (< end beg)) (kill-new string))) The purpose is "The if expression checks whether the previous command was kill-region. If it was, concatenates a copy of the newly clipped text to the just previously clipped text in the kill ring. If you then yank back the text, i.e., `paste' it, you get both pieces of text at once. That way, if you delete two words in a row, and then yank them back, you get both words, in their proper order, with one yank. (The (< end beg)) expression makes sure the order is correct.)" But how can I delete two words in a row£żI have to set mark between two deletions, and this would cause last-command to change. Is there some advanced function I don't know? ------------------- Yours sincerely, Hu, Wei My CV can be found at http://mail.ustc.edu.cn/~roy/