diff --git a/collects/racket/private/kw.rkt b/collects/racket/private/kw.rkt index baba304f3b..ea9e0fe361 100644 --- a/collects/racket/private/kw.rkt +++ b/collects/racket/private/kw.rkt @@ -1061,7 +1061,9 @@ #,@(if rest? #`((list #,@(list-tail args (min (length args) (+ n-req n-opt))))) null)) - #,(quasisyntax/loc stx (#%app #,wrap-id . #,args)))))))) + #,(if lifted? + orig + (quasisyntax/loc stx (#%app #,wrap-id . #,args))))))))) orig)))) (datum->syntax stx (cons wrap-id #'(arg ...)) stx stx)))] [_ wrap-id])))) diff --git a/collects/tests/racket/procs.rktl b/collects/tests/racket/procs.rktl index 79cf9a42c4..4eff6c8c32 100644 --- a/collects/tests/racket/procs.rktl +++ b/collects/tests/racket/procs.rktl @@ -278,6 +278,11 @@ (set! f (lambda (#:y y) (box y))) (test (box 8) (lambda () (f #:y 8)))) +(let () + (define (f #:x [x 1]) x) + (test 7 (lambda () (f #:x 7))) + (set! f #f)) + ;; ---------------------------------------- (report-errs)