diff -Nurd -x'*~' Package-Stash-XS-0.18.orig/t/00-compile.t Package-Stash-XS-0.18/t/00-compile.t
--- Package-Stash-XS-0.18.orig/t/00-compile.t	2011-01-05 14:18:07.000000000 -0500
+++ Package-Stash-XS-0.18/t/00-compile.t	2011-01-06 01:09:26.000000000 -0500
@@ -6,6 +6,7 @@
 use Test::More;
 use File::Find;
 use File::Temp qw{ tempdir };
+use Config;
 
 my @modules;
 find(
@@ -30,7 +31,21 @@
     # fake home for cpan-testers
     # no fake requested ## local $ENV{HOME} = tempdir( CLEANUP => 1 );
 
-    like( qx{ $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
+    my @command;
+    if ($] >= 5.010 && $Config{"byteorder"} =~ /^1/) {
+        # little-endian means intel (not powerpc), for which fink has
+        # multiple single-arch distros that are seen by a single (fat)
+        # perl interp from apple for a perl version supported by fink
+        # (i.e., starting with 5.10.0). This is the logic taken from
+        # Fink::PkgVersion as of fink-0.29.13.
+        push @command, '/usr/bin/arch';
+        if ( $Config{"longsize"} == 4 ) {
+            push @command, '-i386';   # 32-bit
+        } else {
+            push @command, '-x86_64'; # 64-bit
+        }
+    }
+    like( qx{ @command $^X -Ilib -e "require $_; print '$_ ok'" }, qr/^\s*$_ ok/s, "$_ loaded ok" )
         for sort @modules;
 
     SKIP: {