diff --git a/library/bignum.c b/library/bignum.c
index 8b01bad..0d0d922 100644
--- a/library/bignum.c
+++ b/library/bignum.c
@@ -724,7 +724,7 @@
     size_t i, j;
     size_t const limbs = CHARS_TO_LIMBS( buflen );
 
-    MPI_VALIDATE_RET( X   != NULL );
+    MPI_VALIDATE_RET( X != NULL );
     MPI_VALIDATE_RET( buflen == 0 || buf != NULL );
 
     /* Ensure that target MPI has exactly the necessary number of limbs */
@@ -2009,7 +2009,7 @@
 {
     int ret;
     unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
-    MPI_VALIDATE_RET( X != NULL );
+    MPI_VALIDATE_RET( X     != NULL );
     MPI_VALIDATE_RET( f_rng != NULL );
 
     if( size > MBEDTLS_MPI_MAX_SIZE )
@@ -2192,7 +2192,7 @@
     size_t i, j, k, s;
     mbedtls_mpi W, R, T, A, RR;
 
-    MPI_VALIDATE_RET( X != NULL );
+    MPI_VALIDATE_RET( X     != NULL );
     MPI_VALIDATE_RET( f_rng != NULL );
 
     mbedtls_mpi_init( &W ); mbedtls_mpi_init( &R );
@@ -2284,7 +2284,7 @@
 {
     int ret;
     mbedtls_mpi XX;
-    MPI_VALIDATE_RET( X != NULL );
+    MPI_VALIDATE_RET( X     != NULL );
     MPI_VALIDATE_RET( f_rng != NULL );
 
     XX.s = 1;
@@ -2317,7 +2317,7 @@
                   int (*f_rng)(void *, unsigned char *, size_t),
                   void *p_rng )
 {
-    MPI_VALIDATE_RET( X != NULL );
+    MPI_VALIDATE_RET( X     != NULL );
     MPI_VALIDATE_RET( f_rng != NULL );
 
     /*
@@ -2353,7 +2353,7 @@
     mbedtls_mpi_uint r;
     mbedtls_mpi Y;
 
-    MPI_VALIDATE_RET( X != NULL );
+    MPI_VALIDATE_RET( X     != NULL );
     MPI_VALIDATE_RET( f_rng != NULL );
 
     if( nbits < 3 || nbits > MBEDTLS_MPI_MAX_BITS )
