diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index f9bcead0450b22d4d94dda35ef3d3960c82d8ed6..88610a07811d9838db273e5142dd8de38a4353c0 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -204,10 +204,9 @@ (define* (fetch uri #:key (buffered? #t) (timeout? #t)
              (when (or (not port) (port-closed? port))
                (set! port (guix:open-connection-for-uri
                            uri #:verify-certificate? #f)))
-             (unless (or buffered? (not (file-port? port)))
-               (setvbuf port 'none))
              (http-fetch uri #:text? #f #:port port
                          #:keep-alive? keep-alive?
+                         #:buffered? buffered?
                          #:verify-certificate? #f))))))
     (else
      (leave (G_ "unsupported substitute URI scheme: ~a~%")