          (protected (when (listp pkg) (plist-get (cdr pkg) :protected)))
          (copyp (not (null obj)))
          (obj (if obj obj (cfgl-package name-str :name name-sym))))
+    (when (and (listp location)
+               (eq (car location) 'recipe)
+               (eq (plist-get (cdr location) :fetcher) 'local))
+      (setq location
+            `(recipe
+              :fetcher url
+              :url ,(format
+                     "file://%s%s/%s.el"
+                     (configuration-layer/get-layer-local-dir (oref layer :name))
+                     name-str name-str))))
     (when location (oset obj :location location))
     (when min-version (oset obj :min-version (version-to-list min-version)))
     (when step (oset obj :step step))

               (obj (object-assoc pkg-name
                                  :name configuration-layer--packages)))
          (if obj
              (setq obj (configuration-layer/make-package pkg obj ownerp))
            (setq obj (configuration-layer/make-package pkg nil ownerp))
            (push obj configuration-layer--packages))
          (when ownerp
            ;; last owner wins over the previous one,

(provide 'core-configuration-layer)

;;; core-configuration-layer.el ends here
