- Found algorithmic bug in mpi_is_prime()

diff --git a/library/bignum.c b/library/bignum.c
index 357dd46..fa9f1f1 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -1720,8 +1720,8 @@
      * W = |X| - 1
      * R = W >> lsb( W )
      */
-    s = mpi_lsb( &W );
     MPI_CHK( mpi_sub_int( &W, X, 1 ) );
+    s = mpi_lsb( &W );
     MPI_CHK( mpi_copy( &R, &W ) );
     MPI_CHK( mpi_shift_r( &R, s ) );