diff --git a/library/x509.c b/library/x509.c
index 73e1347..4c54b5b 100644
--- a/library/x509.c
+++ b/library/x509.c
@@ -483,7 +483,7 @@
 
     tag = **p;
 
-    if ( tag == ASN1_UTC_TIME )
+    if( tag == ASN1_UTC_TIME )
     {
         (*p)++;
         ret = asn1_get_len( p, end, &len );
@@ -507,7 +507,7 @@
 
         return( 0 );
     }
-    else if ( tag == ASN1_GENERALIZED_TIME )
+    else if( tag == ASN1_GENERALIZED_TIME )
     {
         (*p)++;
         ret = asn1_get_len( p, end, &len );
@@ -703,7 +703,7 @@
  * This fuction tries to 'fix' this by at least suggesting enlarging the
  * size by 20.
  */
-static int compat_snprintf(char *str, size_t size, const char *format, ...)
+static int compat_snprintf( char *str, size_t size, const char *format, ... )
 {
     va_list ap;
     int res = -1;
@@ -715,7 +715,7 @@
     va_end( ap );
 
     // No quick fix possible
-    if ( res < 0 )
+    if( res < 0 )
         return( (int) size + 20 );
 
     return( res );
@@ -731,7 +731,7 @@
     if( ret == -1 )                                 \
         return( -1 );                               \
                                                     \
-    if ( (unsigned int) ret > n ) {                 \
+    if( (unsigned int) ret > n ) {                  \
         p[n - 1] = '\0';                            \
         return( POLARSSL_ERR_DEBUG_BUF_TOO_SMALL ); \
     }                                               \
@@ -930,7 +930,7 @@
 #if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32)
     SYSTEMTIME st;
 
-    GetSystemTime(&st);
+    GetSystemTime( &st );
 
     now->year = st.wYear;
     now->mon = st.wMonth;
@@ -1080,7 +1080,7 @@
         if( verbose != 0 )
             polarssl_printf( "failed\n" );
 
-        polarssl_printf("ret = %d, &flags = %04x\n", ret, flags);
+        polarssl_printf( "ret = %d, &flags = %04x\n", ret, flags );
 
         return( ret );
     }
