diff --git a/guix/grafts.scm b/guix/grafts.scm
index 6b78a784e7f461edad472422af00df4a3019692d..5074809c4368d5fbc326c674efc5eb7e2b88c2c1 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -44,8 +44,10 @@ (define-record-type* <graft> graft make-graft
   (replacement-output graft-replacement-output    ;string | #f
                       (default "out")))
 
-(define* (graft-derivation store name drv grafts
-                           #:key (guile (%guile-for-build))
+(define* (graft-derivation store drv grafts
+                           #:key
+                           (name (derivation-name drv))
+                           (guile (%guile-for-build))
                            (system (%current-system)))
   "Return a derivation called NAME, based on DRV but with all the GRAFTS
 applied."
diff --git a/guix/packages.scm b/guix/packages.scm
index 93bfbc4683aa4e26edfcafad7199893aa8441d04..f6afaeb51084f4adbae3fbb021a41ee61113f910 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -985,7 +985,7 @@ (define* (package-derivation store package
                   (grafts
                    (let ((guile (package-derivation store (default-guile)
                                                     system #:graft? #f)))
-                     (graft-derivation store (bag-name bag) drv grafts
+                     (graft-derivation store drv grafts
                                        #:system system
                                        #:guile guile))))
                 drv))))
@@ -1003,7 +1003,7 @@ (define* (package-cross-derivation store package target
                   (()
                    drv)
                   (grafts
-                   (graft-derivation store (bag-name bag) drv grafts
+                   (graft-derivation store drv grafts
                                      #:system system
                                      #:guile
                                      (package-derivation store (default-guile)
diff --git a/tests/grafts.scm b/tests/grafts.scm
index c11403be19ef633d024092ca31bd83da05faf6c6..4a4122a3e9824964510d086809a9cabf1630d2da 100644
--- a/tests/grafts.scm
+++ b/tests/grafts.scm
@@ -59,7 +59,7 @@ (define %mkdir
                                               '(call-with-output-file %output
                                                  (lambda (port)
                                                    (display "fake mkdir" port)))))
-         (graft (graft-derivation %store "graft" orig
+         (graft (graft-derivation %store orig
                                   (list (graft
                                           (origin %bash)
                                           (replacement one))
diff --git a/tests/packages.scm b/tests/packages.scm
index 68ab3f897b1180c061b5e99eb755d984f83df35a..6315c2204f31635b4789cd6ad90b0753d53c00eb 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -616,7 +616,7 @@ (define read-at
          (guile (package-derivation %store (canonical-package guile-2.0)
                                     #:graft? #f)))
     (equal? (package-derivation %store dummy)
-            (graft-derivation %store "dummy-0"
+            (graft-derivation %store
                               (package-derivation %store dummy #:graft? #f)
                               (package-grafts %store dummy)