diff --git a/src/aclocal.m4 b/src/aclocal.m4
index 453dd01e732dd2af6a0a729f7634c5957bad342d..def2f9af74d20a4c4d501d285b7ea2dd0d0895e7 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -1532,7 +1532,13 @@ AC_DEFUN(PIKE_CHECK_ABI_DIR,
       for f in "$d"/* no; do
         if test -f "$f"; then
 	  empty=no
-          filetype=`file "$f" 2>/dev/null | sed -e 's/.*://'`
+          if test "$abi_dir_dynamic:$abi_64:$pike_cv_abi" = "yes:yes:64" ; then
+             break
+          elif test "$abi_dir_dynamic:$abi_32:$pike_cv_abi" = "yes:yes:32" ; then
+             break
+          fi
+          filetype="`file $f`"
+
 	  case "$filetype" in
             *32-bit*)
   	      abi_32=yes