diff -Nurd -x'*~' Test-POE-Server-TCP-1.16.orig/t/00-compile.t Test-POE-Server-TCP-1.16/t/00-compile.t
--- Test-POE-Server-TCP-1.16.orig/t/00-compile.t	2011-06-29 05:04:18.000000000 -0400
+++ Test-POE-Server-TCP-1.16/t/00-compile.t	2011-09-08 13:46:49.000000000 -0400
@@ -9,6 +9,7 @@
 
 use File::Find;
 use File::Temp qw{ tempdir };
+use Config;
 
 my @modules;
 find(
@@ -44,7 +45,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: {