(defun message-do-fcc ()
   "Process Fcc headers in the current buffer."
   (let ((case-fold-search t)
-       (coding-system-for-write 'raw-text)
+       (coding-system-for-write nnheader-message-coding-system-for-write)
        list file)
     (save-excursion
       (set-buffer (get-buffer-create " *message temp*"))
             message-mime-encode
             t nil))
 
+(defun message-after-save-hook ()
+  (set-buffer-file-coding-system nnheader-message-coding-system-for-write)
+  (set-buffer-modified-p nil)
+  )
+
 (defun message-mime-setup ()
   (turn-on-mime-edit)
-  (add-to-list 'buffer-file-format 'mime-message))
+  (add-to-list 'buffer-file-format 'mime-message)
+  (set-buffer-file-coding-system nnheader-message-coding-system-for-write)
+  (make-local-hook 'after-save-hook)
+  (add-hook 'after-save-hook 'message-after-save-hook nil t)
+  )
 
 (run-hooks 'message-load-hook)