diff --git a/guix/store.scm b/guix/store.scm
index 6c7c07fd2daf5fddf4c71212a71cfb9c9787a117..014d08aaecc758f1cdac046a716d19ec5d45ac44 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -1899,7 +1899,9 @@ (define (mapm/accumulate-builds mproc lst)
     (values (map/accumulate-builds store
                                    (lambda (obj)
                                      (run-with-store store
-                                       (mproc obj)))
+                                       (mproc obj)
+                                       #:system (%current-system)
+                                       #:target (%current-target-system)))
                                    lst)
             store)))
 
diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh
index 14e3cda361781f6d1293c516f30d6dfd6028e953..39b64791e2a388e6196fe3733353073aee03ba53 100644
--- a/tests/guix-pack.sh
+++ b/tests/guix-pack.sh
@@ -40,6 +40,14 @@ trap 'chmod -Rf +w "$test_directory"; rm -rf "$test_directory"' EXIT
 drv="`guix pack coreutils -d --no-grafts`"
 guix gc -R "$drv" | grep "`guix build coreutils -d --no-grafts`"
 
+# Compute the derivation of a cross-compiled pack.  Make sure it refers to the
+# cross-compiled package and not to the native package.
+drv="`guix pack idutils -d --no-grafts --target=arm-linux-gnueabihf`"
+guix gc -R "$drv" | \
+    grep "`guix build idutils --target=arm-linux-gnueabihf -d --no-grafts`"
+if guix gc -R "$drv" | grep "`guix build idutils -d --no-grafts`";
+then false; else true; fi
+
 # Build a tarball with no compression.
 guix pack --compression=none --bootstrap guile-bootstrap
 
diff --git a/tests/store.scm b/tests/store.scm
index 0e80ccc2393fac79d4a071900b76d94d8a3d9167..0af099c1ad4f6d23f855c112c122cf752be51f2f 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -475,6 +475,23 @@ (define (same? x y)
       (run-with-store %store
         (mapm/accumulate-builds built-derivations `((,d1) (,d2)))))))
 
+(test-equal "mapm/accumulate-builds, %current-target-system"
+  (make-list 2 '("i586-pc-gnu" "i586-pc-gnu"))
+  ;; Both the 'mapm' and 'mapm/accumulate-builds' procedures should see the
+  ;; right #:target.
+  (run-with-store %store
+    (mlet %store-monad ((lst1 (mapm %store-monad
+                                    (lambda _
+                                      (current-target-system))
+                                    '(a b)))
+                        (lst2 (mapm/accumulate-builds
+                               (lambda _
+                                 (current-target-system))
+                               '(a b))))
+      (return (list lst1 lst2)))
+    #:system system
+    #:target "i586-pc-gnu"))
+
 (test-assert "topologically-sorted, one item"
   (let* ((a (add-text-to-store %store "a" "a"))
          (b (add-text-to-store %store "b" "b" (list a)))