diff --git a/m4/acx_check_cfortran.m4 b/m4/acx_check_cfortran.m4
index c51b72b7ea3375cf476e4cb696f26ca261d67f0b..a8dc4468b80d00eb05603f109ad2351aa95c7689 100644
--- a/m4/acx_check_cfortran.m4
+++ b/m4/acx_check_cfortran.m4
@@ -260,7 +260,7 @@ FCALLSCSUB0(errExit,ERR_EXIT,err_exit)
               [_ACX_CHECK_CFORTRAN_FC],
               [acx_cv_cfortran_works=${acx_cv_cfortran_works-yes}])])
          AC_PROVIDE_IFELSE([AC_PROG_F77],
-           [AS_IF([test -n "$F77" -a X"$F77" != Xno AC_PROVIDE_IFELSE([AC_PROG_FC],[-a x"$acx_cv_cfortran_works" = xyes])],[_ACX_CHECK_CFORTRAN_F77])])
+           [AS_IF([test -n "$F77" -a X"$F77" != Xno AC_PROVIDE_IFELSE([AC_PROG_FC],[-a \( x"$acx_cv_cfortran_works" = xyes -o -z "$FC" -o X"$FC" = Xno \)])],[_ACX_CHECK_CFORTRAN_F77])])
          rm -f "conftest_c.$ac_objext" "conftest_c.$OBJEXT"
         ],
         [acx_cv_cfortran_works="compiling with cfortran.h failed"])