diff --git a/ChangeLog b/ChangeLog
index 817fb3b..03980c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-17  Richard B. Kreckel  <kreckel@ginac.de>
+
+	Silly workaround for silly bug in gmp.h:
+	* m4/gmp.m4 (CL_GMP_SET_UINTD): Swap #include <gmp.h> and <stdio.h>.
+
 2007-12-17  Richard B. Kreckel  <kreckel@ginac.de>
 
 	* src/polynomial/elem/cl_UP_GF2.h (gf2_mul_table): define for sparc64.
diff --git a/m4/gmp.m4 b/m4/gmp.m4
index 93bdc5d..455a304 100644
--- a/m4/gmp.m4
+++ b/m4/gmp.m4
@@ -36,8 +36,8 @@ cl_cv_new_libgmp="yes", cl_cv_new_libgmp="no")
 dnl What is sizeof(mp_limb_t)?  (It has to match sizeof(uintD) later.)
 AC_DEFUN([CL_GMP_SET_UINTD],
 [AC_CACHE_CHECK([how large gmp demands uintD to be], cl_cv_gmp_set_uintd, [
-    AC_TRY_RUN([#include <stdio.h>
-#include <gmp.h>
+    AC_TRY_RUN([#include <gmp.h>
+#include <stdio.h>
 int main() {
     FILE *f=fopen("conftestval", "w");
     if (!f) return(255);