diff --git a/lib/Minilisp.pm b/lib/Minilisp.pm
index 77fb755..b3dd445 100644
--- a/lib/Minilisp.pm
+++ b/lib/Minilisp.pm
@@ -720,7 +720,7 @@ sub macro_when {
   my $ts = shift;
 
   my $condition = parser_expr($ts);
-  my $work = parser_expr($ts);
+  my $work = macro_progn($ts);
 
   return sub {
     my $ctx = shift;
@@ -739,7 +739,7 @@ sub macro_unless {
   my $ts = shift;
 
   my $condition = parser_expr($ts);
-  my $work = parser_expr($ts);
+  my $work = macro_progn($ts);
 
   return sub {
     my $ctx = shift;