diff --git a/library/ssl_msg.c b/library/ssl_msg.c
index 77904e0..e0c50bc 100644
--- a/library/ssl_msg.c
+++ b/library/ssl_msg.c
@@ -454,15 +454,15 @@
         *cur = rec->cid_len;
         cur++;
 
-        cur[0] = ( ad_len_field >> 8 ) & 0xFF;
-        cur[1] = ( ad_len_field >> 0 ) & 0xFF;
+        cur[0] = MBEDTLS_CHAR_1( ad_len_field );
+        cur[1] = MBEDTLS_CHAR_0( ad_len_field );
         cur += 2;
     }
     else
 #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
     {
-        cur[0] = ( ad_len_field >> 8 ) & 0xFF;
-        cur[1] = ( ad_len_field >> 0 ) & 0xFF;
+        cur[0] = MBEDTLS_CHAR_1( ad_len_field );
+        cur[1] = MBEDTLS_CHAR_0( ad_len_field );
         cur += 2;
     }
 
@@ -2481,8 +2481,8 @@
             /* Write message_seq and update it, except for HelloRequest */
             if( hs_type != MBEDTLS_SSL_HS_HELLO_REQUEST )
             {
-                ssl->out_msg[4] = ( ssl->handshake->out_msg_seq >> 8 ) & 0xFF;
-                ssl->out_msg[5] = ( ssl->handshake->out_msg_seq      ) & 0xFF;
+                ssl->out_msg[4] = MBEDTLS_CHAR_1( ssl->handshake->out_msg_seq );
+                ssl->out_msg[5] = MBEDTLS_CHAR_0( ssl->handshake->out_msg_seq );
                 ++( ssl->handshake->out_msg_seq );
             }
             else
