                            (symbol-name (oref pkg :name))))
                   load-path))
            ((eq 'local location)
-            (let* ((owner (object-assoc (oref pkg :owner) :name configuration-layer--layers))
+            (let* ((owner (object-assoc (oref pkg :owner)
+                                        :name configuration-layer--layers))
                    (dir (when owner (oref owner :dir))))
               (push (format "%slocal/%S/" dir pkg-name) load-path)))))
         ;; configuration
+        (unless (memq (oref pkg :location) '(local site built-in))
+          (configuration-layer//activate-package pkg-name))
         (cond
          ((eq 'dotfile (oref pkg :owner))
-          (configuration-layer//activate-package pkg-name)
           (spacemacs-buffer/message
            (format "%S is configured in the dotfile." pkg-name)))
          (t
-          (configuration-layer//activate-package pkg-name)
           (configuration-layer//configure-package pkg))))))))
 
 (defun configuration-layer//configure-package (pkg)

  (if (version< emacs-version "24.3.50")
      ;; fake version list to always activate the package
      (package-activate pkg '(0 0 0 0))
    (package-activate pkg)))

(defun configuration-layer/get-layers-list ()
  "Return a list of all discovered layer symbols."

    (dolist
        (dep (configuration-layer//get-package-deps-from-archive
              pkg-name))
      (if (package-installed-p (car dep))
          (configuration-layer//activate-package (car dep))
        (package-install (car dep))))
    (package-install pkg-name)))

(defun configuration-layer//install-from-recipe (pkg)
