Hi, I believe there is an issue with 'lower-gexp'. Running the following snippet to lower a G-Expression for "i686-linux" yields output that references store paths built for x86_64. In this case, the Guile interpreter used is an x86_64 binary. #+BEGIN_SRC scheme (define (display-exp exp) (mlet* %store-monad ((lowered (lower-gexp exp #:system "i686-linux" #:target "i686-linux")) (to-build -> (cons (lowered-gexp-guile lowered) (lowered-gexp-inputs lowered))) (_ (built-derivations to-build))) (return (format #t "~a~%" (lowered-gexp-sexp lowered))))) (with-store store (run-with-store store (display-exp #~(primitive-load #$(switch-system-program %system))))) #+END_SRC