     Evaluate BODY when the micro-state is switched on.
 
 `:on-exit BODY'
-    Evaluate BODDY when leaving the micro-state.
+    Evaluate BODY when leaving the micro-state.
 
-`:documentation STRING'
-    A documentation STRING displayed in the minibuffer
+`:documentation BODY'
+    Evaluate BODY which must return a string
 
 `:bindings EXPRESSIONS'
     One or several EXPRESSIONS with the form

      pressing this key will leave the micro-state (default is nil)."
  (declare (indent 1))
  (let* ((func (spacemacs//micro-state-func-name name))
         (doc (plist-get props :documentation))
         (on-enter (spacemacs/mplist-get props :on-enter))
         (on-exit (spacemacs/mplist-get props :on-exit))
         (bindings (spacemacs/mplist-get props :bindings))

    `(defun ,func ()
       ,(format "%s micro-state." (symbol-name name))
       (interactive)
       (let ((doc ,@doc)) (when doc (echo doc)))
       ,@on-enter
       (,(if (version< emacs-version "24.4")
             'set-temporary-overlay-map
