diff --git a/srfi-210.html b/srfi-210.html
index c475f17..a7d4ea1 100644
--- a/srfi-210.html
+++ b/srfi-210.html
@@ -334,11 +334,16 @@
     <pre>
     (define-syntax set!-values
       (syntax-rules ()
+        ((set!-values () producer)
+         (let-values ((() producer))
+           (if #f #f)))
         ((set!-values (var1 ...) producer)
          (letrec-syntax
              ((aux (syntax-rules ::: ()
                      ((aux () ((%var1 temp1) :::) %producer)
                       (let-values (((temp1 ::: . temp*) %producer))
+                        ;; Should error if there are duplicate vars.
+                        (lambda (var1 ...) #f)
                         (set! %var1 temp1) :::))
                      ((aux (%var1 var2 :::) (temp :::) %producer)
                       (aux (var2 :::) (temp ::: (%var1 temp1)) %producer)))))
@@ -348,14 +353,16 @@
              ((aux (syntax-rules ::: ()
                      ((aux () ((%var1 temp1) ::: (%var* temp*)) %producer)
                       (let-values (((temp1 ::: . temp*) %producer))
+                        ;; Should error if there are duplicate vars.
+                        (lambda (var1 ... . var*) #f)
                         (set! %var1 temp1) :::
                         (set! %var* temp*)))
                      ((aux (%var1 var2 :::) (temp :::) %producer)
                       (aux (var2 :::) (temp ::: (%var1 temp1)) %producer)))))
            (aux (var1 ... var*) () producer)))
-        ((set!-values var* producer)
-         (let-values ((temp*) producer)
-           (set! var* temp*)))))</pre>
+    ((set!-values var* producer)
+     (let-values ((temp* producer))
+       (set! var* temp*)))))</pre>
 
     <pre>
     (let ((x #f) (y #f))
diff --git a/srfi/210.scm b/srfi/210.scm
index 269f020..e75774d 100644
--- a/srfi/210.scm
+++ b/srfi/210.scm
@@ -81,11 +81,16 @@
 
 (define-syntax set!-values
   (syntax-rules ()
+    ((set!-values () producer)
+     (let-values ((() producer))
+       (if #f #f)))
     ((set!-values (var1 ...) producer)
      (letrec-syntax
          ((aux (syntax-rules ::: ()
                  ((aux () ((%var1 temp1) :::) %producer)
                   (let-values (((temp1 ::: . temp*) %producer))
+                    ;; Should error if there are duplicate vars.
+                    (lambda (var1 ...) #f)
                     (set! %var1 temp1) :::))
                  ((aux (%var1 var2 :::) (temp :::) %producer)
                   (aux (var2 :::) (temp ::: (%var1 temp1)) %producer)))))
@@ -95,13 +100,15 @@
          ((aux (syntax-rules ::: ()
                  ((aux () ((%var1 temp1) ::: (%var* temp*)) %producer)
                   (let-values (((temp1 ::: . temp*) %producer))
+                    ;; Should error if there are duplicate vars.
+                    (lambda (var1 ... . var*) #f)
                     (set! %var1 temp1) :::
                     (set! %var* temp*)))
                  ((aux (%var1 var2 :::) (temp :::) %producer)
                   (aux (var2 :::) (temp ::: (%var1 temp1)) %producer)))))
        (aux (var1 ... var*) () producer)))
     ((set!-values var* producer)
-     (let-values ((temp*) producer)
+     (let-values ((temp* producer))
        (set! var* temp*)))))
 
 (define-syntax with-values
