diff --git a/aclocal.m4 b/aclocal.m4
index 8f12e0dba07d83c04857c5fa07a231b71d5cc369..51da0dfff122d15268073a1df59fadabcd28d7e9 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $Id: aclocal.m4,v 1.49 2000/06/08 20:57:02 panne Exp $
+dnl $Id: aclocal.m4,v 1.50 2000/06/15 20:22:53 panne Exp $
 dnl 
 dnl Extra autoconf macros for the Glasgow fptools
 dnl
@@ -377,7 +377,7 @@ undefine([AC_CV_SIZEOF_NAME])dnl
 dnl ** Map an arithmetic C type to a Haskell type.
 dnl    Based on autconf's AC_CHECK_SIZEOF.
 
-dnl FPTOOLS_CHECK_HTYPE(TYPE)
+dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
 AC_DEFUN(FPTOOLS_CHECK_HTYPE,
 [changequote(<<, >>)dnl
 dnl The name to #define.
@@ -412,7 +412,9 @@ main() {
   }
   fclose(f);
   exit(0);
-}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=NotReallyAType, AC_CV_NAME=NotReallyAType)])dnl
+}], AC_CV_NAME=`cat conftestval`,
+ifelse([$2], , AC_CV_NAME=NotReallyAType,      AC_CV_NAME=$2),
+ifelse([$3], , AC_CV_NAME=NotReallyATypeCross, AC_CV_NAME=$3))]) dnl
 AC_MSG_RESULT($AC_CV_NAME)
 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
 undefine([AC_TYPE_NAME])dnl
diff --git a/configure.in b/configure.in
index c3d0e1361335076cdaf1850bfa8ff8046a37e98b..6f07d0772477ad89209d423b7070a785ff2ad249 100644
--- a/configure.in
+++ b/configure.in
@@ -631,7 +631,8 @@ FPTOOLS_CHECK_HTYPE(double)
 FPTOOLS_CHECK_HTYPE(ptrdiff_t)
 FPTOOLS_CHECK_HTYPE(size_t)
 FPTOOLS_CHECK_HTYPE(wchar_t)
-FPTOOLS_CHECK_HTYPE(sig_atomic_t)
+dnl Int32 is a HACK for non-ISO C compilers
+FPTOOLS_CHECK_HTYPE(sig_atomic_t, Int32)
 FPTOOLS_CHECK_HTYPE(clock_t)
 FPTOOLS_CHECK_HTYPE(time_t)