diff --git a/library/oid.c b/library/oid.c
index 1b5073b..24018d6 100644
--- a/library/oid.c
+++ b/library/oid.c
@@ -76,7 +76,7 @@
 int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1 )                  \
 {                                                                       \
     const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid );        \
-    if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND );           \
+    if( data == NULL ) return( POLARSSL_ERR_OID_NOT_FOUND );            \
     *ATTR1 = data->descriptor.ATTR1;                                    \
     return( 0 );                                                        \
 }
@@ -89,7 +89,7 @@
 int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1 )                  \
 {                                                                       \
     const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid );        \
-    if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND );           \
+    if( data == NULL ) return( POLARSSL_ERR_OID_NOT_FOUND );            \
     *ATTR1 = data->ATTR1;                                               \
     return( 0 );                                                        \
 }
@@ -103,7 +103,7 @@
 int FN_NAME( const asn1_buf *oid, ATTR1_TYPE * ATTR1, ATTR2_TYPE * ATTR2 )  \
 {                                                                           \
     const TYPE_T *data = oid_ ## TYPE_NAME ## _from_asn1( oid );            \
-    if( data == NULL ) return ( POLARSSL_ERR_OID_NOT_FOUND );               \
+    if( data == NULL ) return( POLARSSL_ERR_OID_NOT_FOUND );                \
     *ATTR1 = data->ATTR1;                                                   \
     *ATTR2 = data->ATTR2;                                                   \
     return( 0 );                                                            \
@@ -609,7 +609,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;
@@ -621,7 +621,7 @@
     va_end( ap );
 
     // No quick fix possible
-    if ( res < 0 )
+    if( res < 0 )
         return( (int) size + 20 );
 
     return( res );
@@ -635,7 +635,7 @@
     if( ret == -1 )                                 \
         return( POLARSSL_ERR_OID_BUF_TOO_SMALL );   \
                                                     \
-    if ( (unsigned int) ret >= n ) {                \
+    if( (unsigned int) ret >= n ) {                 \
         p[n - 1] = '\0';                            \
         return( POLARSSL_ERR_OID_BUF_TOO_SMALL );   \
     }                                               \
@@ -667,7 +667,7 @@
     for( i = 1; i < oid->len; i++ )
     {
         /* Prevent overflow in value. */
-        if ( ( ( value << 7 ) >> 7 ) != value )
+        if( ( ( value << 7 ) >> 7 ) != value )
             return( POLARSSL_ERR_OID_BUF_TOO_SMALL );
 
         value <<= 7;
