 Each pair KEYn FUNCTIONn is defined in MAP after the evilification of it."
   (declare (indent 1))
   (let* ((mode (plist-get props :mode))
-         (evilified-map (plist-get props :evilified-map))
+         (evilified-map (or (plist-get props :evilified-map)
+                            'evil-evilified-state-map-original))
          (eval-after-load (plist-get props :eval-after-load))
          (pre-bindings (evilified-state--mplist-get props :pre-bindings))
          (bindings (evilified-state--mplist-get props :bindings))

         (body
          (progn
            (evilified-state--define-pre-bindings map pre-bindings)
            `((let ((sorted-map (evilified-state--sort-keymap
                                 (or ,evilified-map evil-evilified-state-map)))
                    processed)
                (mapc (lambda (map-entry)
                        (unless (member (car map-entry) processed)
                          (setq processed (evilified-state--evilify-event
                                           ,map ',map
                                           (or ,evilified-map
                                               evil-evilified-state-map)
                                           (car map-entry) (cdr map-entry)))))
                      sorted-map))
              (unless ,(null defkey)
                (,@defkey))
              (unless ,(null mode)
                (evilified-state--configure-default-state ',mode))))))
    (if (null eval-after-load)

    (add-to-list 'evil-evilified-state-modes mode)))

(defun evilified-state--evilify-event (map map-symbol evil-map event evil-value
                                           &optional processed pending-funcs)
  "Evilify EVENT in MAP and return a list of PROCESSED events."
  (if (and event (or evil-value pending-funcs))
      (let* ((kbd-event (kbd (single-key-description event)))
