diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index 1a428d54ffc685b63e84801ea0299c491665bcd8..f595e7259c2b70520ad7ddb2f5db18a9d41e629c 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -61,11 +61,16 @@ (define-public curl
     `(#:configure-flags '("--with-gnutls" "--with-gssapi")
       ;; Add a phase to patch '/bin/sh' occurances in tests/runtests.pl
       #:phases
-      (alist-cons-before
-       'check 'patch-runtests
+      (alist-replace
+       'check
        (lambda _
-           (substitute* "tests/runtests.pl"
-             (("/bin/sh") (which "sh"))))
+         (substitute* "tests/runtests.pl"
+           (("/bin/sh") (which "sh")))
+
+         ;; The top-level "make check" does "make -C tests quiet-test", which
+         ;; is too quiet.  Use the "test" target instead, which is more
+         ;; verbose.
+         (zero? (system* "make" "-C" "tests" "test")))
        %standard-phases)))
    (synopsis "Command line tool for transferring data with URL syntax")
    (description