(defun deschar-frame () "Describe the character at point in a new frame." (interactive) (let ((bframe (make-frame '((name . "My Frame Name"))) ) buf pt) (setq buf (current-buffer) pt (point)) (select-frame-set-input-focus bframe) (describe-char (point)pt buf) (switch-to-buffer (get-buffer "*Help*")) (delete-other-windows)))) buf and pt are saved to begin with just in case somebody mucks around with the current buffer or point before describe-char is called. Probably unnecessary.
You are right about switch-to-buffer: I edited the get-buffer out.