+my $is_as = 0;
+print "Checking if this is Windows ActiveState 5.8.[78]... ";
+if ($^O eq 'MSWin32' && $^V ge v5.8.7 && $^V lt v5.8.9) {
+ eval {
+ require Win32;
+ 1;
+ } and do {
+ if (defined &Win32::BuildNumber) {
+ $is_as = 1;
+ push @DEFINES, '-DVMG_COMPAT_ARRAY_PUSH_NOLEN=1';
+ }
+ }
+}
+print $is_as ? "yes\n" : "no\n";
+
+# Threads, Windows and 5.8.x don't seem to be best friends
+if ($^O eq 'MSWin32' && $^V lt v5.9.0) {
+ push @DEFINES, '-DVMG_MULTIPLICITY=0';
+}
+
+@DEFINES = (DEFINE => join ' ', @DEFINES) if @DEFINES;
+