Thank you Uday! I did something mode drastic, removed all compiled files from VM, sorry, it was a bit faster. Now the stack trace is: Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil) insert(nil) (let ((***start vm-imap-read-point) end fetch-response list p) (goto-char ***start) (vm-set-imap-status-got statblob 0) (let* ((func #'(lambda (beg end len) (if vm-imap-read-point (progn ... ...)))) (after-change-functions (cons func after-change-functions)) (need-ok t) response) (setq response (vm-imap-read-response-and-verify process "message FETCH")) (cond ((vm-imap-response-matches response '* 'atom 'FETCH 'list) (setq fetch-response response)) (t (vm-imap-normal-error "cannot retrieve message from the server")))) (setq vm-imap-read-point (point-marker)) (setq list (cdr (nth 3 fetch-response))) (cond (bodypeek (cond ((vm-imap-response-matches list 'BODY '(vector) 'string) (setq p (nth 2 list) ***start (nth 1 p))) ((vm-imap-response-matches list 'UID 'atom 'BODY '(vector) 'string) (setq p (nth 4 list) ***start (nth 1 p))) (t (vm-imap-protocol-error "expected (BODY[] string) in FETCH response")))) (t (if (not (vm-imap-response-matches list 'RFC822 'string)) (vm-imap-protocol-error "expected (RFC822 string) in FETCH response")) (setq p (nth 1 list) ***start (nth 1 p)))) (goto-char (nth 2 p)) (setq end (point-marker)) (vm-set-imap-status-need statblob nil) (vm-imap-cleanup-region ***start end) (vm-munge-message-separators vm-folder-type ***start end) (goto-char ***start) (vm-set-imap-status-got statblob nil) (if (and (eq vm-folder-type 'babyl) (cond ((stringp target) (let ((attrs ...)) (or (null attrs) (equal 0 ...)))) ((bufferp target) (save-current-buffer (set-buffer target) (= 0 (buffer-size)))))) (let ((opoint (point))) (vm-convert-folder-header nil vm-folder-type) (setq ***start opoint) (goto-char ***start) (vm-skip-past-folder-header))) (insert (vm-leading-message-separator)) (save-restriction (narrow-to-region (point) end) (vm-convert-folder-type-headers 'baremessage vm-folder-type)) (goto-char end) (if (and (not (eq 10 (char-after (1- (point))))) (memq vm-folder-type '(From_-with-Content-Length BellFrom_ From_))) (insert-before-markers "\n")) (insert-before-markers (vm-trailing-message-separator)) (if (stringp target) (let ((buffer-file-type t) (selective-display nil)) (write-region ***start end target t 0)) (let ((b (current-buffer))) (save-current-buffer (set-buffer target) (vm-buffer-type:enter 'unknown) (let ((buffer-read-only nil)) (insert-buffer-substring b ***start end)) (vm-buffer-type:exit)))) (delete-region ***start end) t) vm-imap-retrieve-to-target(# # [[nil 25286 39507 441256 2 vm-imap-report-retrieval-status (#3) nil 152000 nil] t "