(defmacro save-current-message (&rest body)
(let ((old-mesg (make-symbol "old-mesg-temp")))
`(let ((,old-mesg (current-message))
(message-log-max nil))
(unwind-protect
(progn ,@body)
(if ,old-mesg
(message "%s" ,old-mesg)
(message nil))))))