diff --git a/src/aclocal.m4 b/src/aclocal.m4
index 1189251..424a2b7 100644
--- a/src/aclocal.m4
+++ b/src/aclocal.m4
@@ -981,13 +981,11 @@ if test "${enable_libffi}" = auto -o "${enable_libffi}" = system; then
  dnl
  dnl Try first with the prebuilt versions, if installed and accessible
  dnl
- AC_CHECK_LIB( ffi, ffi_call, [system_libffi=yes], [system_libffi=no] )
- if test "${system_libffi}" = yes; then
-   AC_CHECK_HEADER([ffi/ffi.h],[ECL_LIBFFI_HEADER='ffi/ffi.h'],[],[])
-   if test -z "$ECL_LIBFFI_HEADER"; then
-     AC_CHECK_HEADER([ffi.h],[ECL_LIBFFI_HEADER='ffi.h'],[system_libffi=no],[])
-   fi
- fi
+ AC_CHECK_LIB(ffi, ffi_call,
+   [AC_CHECK_HEADERS([ffi/ffi.h ffi.h],
+     [ECL_LIBFFI_HEADER=$ac_header; system_libffi=yes; break],
+     [system_libffi=no],[])],
+   [system_libffi=no])
  AC_MSG_CHECKING( [whether we can use the existing libffi library] )
  AC_MSG_RESULT( [${system_libffi}] )
  if test "${system_libffi}" = "no"; then
