--- srfi-45.scm	2013-03-19 10:59:29.024514686 -0400
+++ srfi-45-with-mv.scm	2013-03-19 11:00:52.046923561 -0400
@@ -13,17 +13,19 @@
     ((lazy exp)
      (box (cons 'lazy (lambda () exp))))))
 
-(define (eager x)
-  (box (cons 'eager x)))
+(define (eager . xs)
+  (box (cons 'eager xs)))
 
 (define-syntax delay
   (syntax-rules ()
-    ((delay exp) (lazy (eager exp)))))
+    ((delay exp) (lazy (call-with-values
+                           (lambda () exp)
+                         eager)))))
 
 (define (force promise)
   (let ((content (unbox promise)))
     (case (car content)
-      ((eager) (cdr content))
+      ((eager) (apply values (cdr content)))
       ((lazy)  (let* ((promise* ((cdr content)))        
                       (content  (unbox promise)))                      ; * 
                  (if (not (eqv? (car content) 'eager))                 ; *
