diff --git a/library/bignum.c b/library/bignum.c
index 8f29324..2b6e234 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -40,7 +40,7 @@
 #include <stdlib.h>
 #include <stdarg.h>
 
-#define ciL    ((int) sizeof(t_uint))   /* chars in limb  */
+#define ciL    (sizeof(t_uint))         /* chars in limb  */
 #define biL    (ciL << 3)               /* bits  in limb  */
 #define biH    (ciL << 2)               /* half limb size */
 
@@ -105,6 +105,9 @@
 {
     t_uint *p;
 
+    if( nblimbs > POLARSSL_MPI_MAX_LIMBS )
+        return( 1 );
+
     if( X->n < nblimbs )
     {
         if( ( p = (t_uint *) malloc( nblimbs * ciL ) ) == NULL )
@@ -192,7 +195,7 @@
     size_t i, j, count = 0;
 
     for( i = 0; i < X->n; i++ )
-        for( j = 0; j < (int) biL; j++, count++ )
+        for( j = 0; j < biL; j++, count++ )
             if( ( ( X->p[i] >> j ) & 1 ) != 0 )
                 return( count );
 
@@ -528,7 +531,7 @@
 
     i = mpi_msb( X ) + count;
 
-    if( X->n * (int) biL < i )
+    if( X->n * biL < i )
         MPI_CHK( mpi_grow( X, BITS_TO_LIMBS( i ) ) );
 
     ret = 0;
@@ -1041,7 +1044,7 @@
     MPI_CHK( mpi_grow( &T2, 3 ) );
 
     k = mpi_msb( &Y ) % biL;
-    if( k < (int) biL - 1 )
+    if( k < biL - 1 )
     {
         k = biL - 1 - k;
         MPI_CHK( mpi_shift_l( &X, k ) );
@@ -1833,7 +1836,7 @@
     size_t k, n;
     mpi Y;
 
-    if( nbits < 3 )
+    if( nbits < 3 || nbits > 4096 )
         return( POLARSSL_ERR_MPI_BAD_INPUT_DATA );
 
     mpi_init( &Y, NULL );
