Fix bug in mpi_set_bit
diff --git a/library/bignum.c b/library/bignum.c
index 945da17..98d534a 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -280,7 +280,8 @@
         MPI_CHK( mpi_grow( X, off + 1 ) );
     }
 
-    X->p[off] = ( X->p[off] & ~( 0x01 << idx ) ) | ( val << idx );
+    X->p[off] &= ~( (t_uint) 0x01 << idx );
+    X->p[off] |= (t_uint) val << idx;
 
 cleanup: