diff --git a/Configure.pl b/Configure.pl
index 15cfcef..bcb75c1 100644
--- a/Configure.pl
+++ b/Configure.pl
@@ -174,13 +174,17 @@ END
 #  Generate a Makefile from a configuration
 sub create_makefile {
     my ($makefile_timing, %config) = @_;
+    my $is_win32 = $^O eq 'MSWin32';
 
     my $maketext = slurp( 'build/Makefile.in' );
 
     $config{'stagestats'} = $makefile_timing ? '--stagestats' : '';
-    $config{'win32_libparrot_copy'} = $^O eq 'MSWin32' ? 'copy $(PARROT_BIN_DIR)\libparrot.dll .' : '';
+    $config{'win32_libparrot_copy'} = $is_win32 ? 'copy $(PARROT_BIN_DIR)\libparrot.dll .' : '';
+    $config{'win32_force_shell'} = $is_win32 ? 'SHELL = cmd' : '';
+
     $maketext =~ s/@(\w+)@/$config{$1}/g;
-    if ($^O eq 'MSWin32') {
+
+    if ($is_win32) {
         $maketext =~ s{/}{\\}g;
         $maketext =~ s{\\\*}{\\\\*}g;
         $maketext =~ s{(?:git|http):\S+}{ do {my $t = $&; $t =~ s'\\'/'g; $t} }eg;
diff --git a/build/Makefile.in b/build/Makefile.in
index d1e2ac7..21d0cde 100644
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -11,6 +11,7 @@ PARROT_LIB_DIR     = @libdir@$(PARROT_VERSION)
 PARROT_SRC_DIR     = @srcdir@$(PARROT_VERSION)
 HAS_ICU            = @has_icu@
 
+@win32_force_shell@
 CC            = @cc@
 CFLAGS        = @ccflags@ @cc_shared@ @cc_debug@ @ccwarn@ @cc_hasjit@ @gc_flag@
 EXE           = @exe@
