diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 13ade375153333f826025659e3c3de0b9aec0873..5fb6aaae0c5bd0ad1e40fa758f8f241a5e9dbd11 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -875,7 +875,10 @@ (define (wrapped-manifest-entry entry . args)
     (item (apply wrapped-package
                  (manifest-entry-item entry)
                  (manifest-entry-output entry)
-                 args))))
+                 args))
+    (dependencies (map (lambda (entry)
+                         (apply wrapped-manifest-entry entry args))
+                       (manifest-entry-dependencies entry)))))
 
 
 ;;;
diff --git a/tests/guix-pack-relocatable.sh b/tests/guix-pack-relocatable.sh
index 358cac5b262d50844565036afb1e876d41027031..52d72125940468ad367f0a837b3abe00fd366d35 100644
--- a/tests/guix-pack-relocatable.sh
+++ b/tests/guix-pack-relocatable.sh
@@ -111,3 +111,8 @@ esac
 tarball="`guix pack -R -S /share=share groff:doc`"
 (cd "$test_directory"; tar xvf "$tarball")
 test -d "$test_directory/share/doc/groff/html"
+
+# Ensure '-R' applies to propagated inputs.  Failing to do that, it would fail
+# with a profile collision error in this case because 'python-scipy'
+# propagates 'python-numpy'.  See <https://bugs.gnu.org/42510>.
+guix pack -RR python-numpy python-scipy --no-grafts -n