diff --git a/ChangeLog b/ChangeLog
index 9f651ccba9c652100a33e738666a90a6061dc878..3e41a8700265a0aa540212e911d957d1e1b85234 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2013-02-14  Niels Möller  <nisse@lysator.liu.se>
 
+	* configure.ac: Find GMP's GMP_NUMB_BITS. Substitute in Makefile.
+	* config.make.in (GMP_NUMB_BITS): New variable.
+
 	* examples/rsa-keygen.c (uint_arg): New function.
 	(main): New options -s and -e, to specify key size and public
 	exponent. Increased default key size to 2048.
diff --git a/config.make.in b/config.make.in
index c1f2e5d485e62b3774f5381780616f89f169f7cf..a1ebf0dc17dff604513f0a30e05e5ebbb0057d99 100644
--- a/config.make.in
+++ b/config.make.in
@@ -46,6 +46,8 @@ LIBHOGWEED_FORLINK = @LIBHOGWEED_FORLINK@
 LIBHOGWEED_LIBS = @LIBHOGWEED_LIBS@
 LIBHOGWEED_LINK = @LIBHOGWEED_LINK@
 
+GMP_NUMB_BITS = @GMP_NUMB_BITS@
+
 AR = @AR@
 ARFLAGS = cru
 AUTOCONF = autoconf
diff --git a/configure.ac b/configure.ac
index 3dda461248e08210ef15ca61c35013f72f60572e..848601d42f48de1ac177f212e69e6ef0c70dfcd2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -587,6 +587,20 @@ Support for public key algorithms will be unavailable.])]
 # Add -R flags needed to run programs linked with gmp
 LSH_RPATH_FIX
 
+# Check for gmp limb size
+nettle_cv_gmp_numb_bits=0
+if test "$enable_public_key" = yes; then
+  AC_MSG_CHECKING([for GMP limb size])
+  AC_COMPUTE_INT(nettle_cv_gmp_numb_bits, [GMP_NUMB_BITS],
+      [#include <gmp.h>],
+      [AC_MSG_FAILURE([cannot find value of GMP_NUMB_BITS])])
+
+  AC_MSG_RESULT([$nettle_cv_gmp_numb_bits bits])
+fi
+
+GMP_NUMB_BITS="$nettle_cv_gmp_numb_bits"
+AC_SUBST([GMP_NUMB_BITS])
+
 AH_TEMPLATE([HAVE_MPZ_POWM_SEC], [Define if mpz_powm_sec is available (appeared in GMP-5)])
 AC_CHECK_FUNC(__gmpz_powm_sec, [AC_DEFINE(HAVE_MPZ_POWM_SEC)])