diff --git a/expand.scm b/expand.scm
index 6e9dff4..22b6a61 100644
--- a/expand.scm
+++ b/expand.scm
@@ -111,7 +111,7 @@
               (set! seen (cons (cons x vec) seen))
               (do ((i 0 (fx+ i 1)))
                   ((fx>= i len) vec)
-                (##sys#setslot vec i (##sys#slot x i)))))
+                (##sys#setslot vec i (walk (##sys#slot x i))))))
            (else x)))))
 
 (define strip-syntax ##sys#strip-syntax)
diff --git a/tests/syntax-tests.scm b/tests/syntax-tests.scm
index 49aafcb..a66ef76 100644
--- a/tests/syntax-tests.scm
+++ b/tests/syntax-tests.scm
@@ -165,6 +165,13 @@
     (let ((a 2))
       (t '(1 2 3 a) (foo a)))))
 
+;; Strip-syntax on vectors:
+(let-syntax
+    ((foo (syntax-rules ()
+            ((_)
+             '#(b)))))
+  (t '#(b) (foo)))
+
 (define-syntax kw
   (syntax-rules (baz)
     ((_ baz) "baz")
