diff --git a/MD5.c b/MD5.c
index ff6f30a50cc087234f51e063c125b922fe4e5931..b7ec4a2e6c5a8e95953d56fd78eef85f625ba68b 100644
--- a/MD5.c
+++ b/MD5.c
@@ -382,7 +382,7 @@ static void md5_append(md5_state_t *pms, const md5_byte_t *data, size_t nbytes)
         return;
 
     /* Update the message length. */
-    pms->count[1] += nbytes >> 29;
+    pms->count[1] += (md5_word_t)(nbytes >> 29);
     pms->count[0] += nbits;
     if (pms->count[0] < nbits)
         pms->count[1]++;