         (if (file-directory-p module-path)
             `(condition-case-unless-debug ex
                  (let ((doom--current-module ',(cons module submodule)))
-                   (load! init   ,module-path :noerror)
-                   (load! config ,module-path :noerror))
+                   (load! init ,module-path :noerror)
+                   (let ((doom--stage 'config))
+                     (load! config ,module-path :noerror)))
                ('error
                 (lwarn 'doom-modules :error
                        "%s in '%s %s' -> %s"

  "Reload your private Doom config. Experimental!"
  (interactive)
  (doom//reload-load-path)
  (let ((doom--stage 'init))
    (load (concat doom-private-dir "init.el") nil nil 'nosuffix))
  (let ((doom--stage 'config))
    (load (concat doom-private-dir "config.el") nil nil 'nosuffix))
  (message "Private config reloaded"))

                           config-forms))))))))
    `(let (file-name-handler-alist)
       (setq doom-modules ',doom-modules)
       ,@(nreverse init-forms)
       (unless noninteractive
         (run-hooks 'doom-internal-init-hook)
         (let ((doom--stage 'config))
