Please excuse me if this has been suggested before for adding to Emacs. I have a real need to have my command shells beep at me when their work is done, so I set it up so beeps are passed to the host system. In the function comint-carriage-motion I alter (defun comint-carriage-motion (start end) "Interpret carriage control characters in the region from START to END. Translate carriage return/linefeed sequences to linefeeds. Make single carriage returns delete to the beginning of the line. Make backspaces delete the previous character." to say (defun comint-carriage-motion (start end) "Interpret carriage control characters and bells in the region from START to END. Translate carriage return/linefeed sequences to linefeeds. Make single carriage returns delete to the beginning of the line. Make backspaces delete the previous character. Pass bells through." and the code chunk (cond ((= ch ?\b) ; CH = BS (delete-char 1) (if (> (point) lbeg) (delete-char -1))) ((= ch ?\n) (when delete-end ; CH = LF (if (< delete-end (point)) (delete-region lbeg delete-end)) (set-marker delete-end nil) (setq delete-end nil)) (forward-char 1) (setq lbeg (point))) (t ; CH = CR changed to (cond ((= ch ?\b) ; CH = BS (delete-char 1) (if (> (point) lbeg) (delete-char -1))) ((= ch ?\n) (when delete-end ; CH = LF (if (< delete-end (point)) (delete-region lbeg delete-end)) (set-marker delete-end nil) (setq delete-end nil)) (forward-char 1) (setq lbeg (point))) ((= ch ?\a) (forward-char 1) (ding) (sit-for 0.45 t)) ; CH = BL (t ; CH = CR Again, please excuse me if this has been suggested as a feature before. God's Blessings, Tom Baker