Hi I'm lagging behind the list... I recently saw the new duplicate-line function and I feel I have an alternative, which also takes the region into account: ;; ;; Duplicate region ;; (defun duplicate-region-after (beg end add-cr) "Insert a newline and duplicate after selection" (let ((dupstr (buffer-substring-no-properties beg end))) (goto-char end) (when add-cr (insert "\n")) (insert dupstr))) (defun duplicate-line-or-region (arg) "Duplicate the region or the line when nothing is selected" (interactive "p") (save-excursion (let ((b (if mark-active (region-beginning) (line-beginning-position))) (e (if mark-active (region-end) (line-end-position))) _ign) (dotimes (_ign arg) (duplicate-region-after b e (not mark-active))) ))) When and if I have CPU cycles I'd like to expand this to take a rectangular region into account. Best, /PA -- Fragen sind nicht da um beantwortet zu werden, Fragen sind da um gestellt zu werden Georg Kreisler Headaches with a Juju log: unit-basic-16: 09:17:36 WARNING juju.worker.uniter.operation we should run a leader-deposed hook here, but we can't yet