diff --git a/ChangeLog b/ChangeLog
index 4941e0e..9f927fc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2018-07-04  Werner Lemberg  <wl@gnu.org>
+
+	Fix 32bit build warnings (#54239).
+
+	* src/base/ftbitmap.c (FT_Bitmap_Blend): Add casts to avoid signed
+	vs. unsigned comparisons.
+
+	* srb/sfnt/ttcolr.c (tt_face_get_colr_layer): Ditto.
+
 2018-07-02  Jeff Carey  <Jeff.Carey@monotype.com>
 
 	* src/psnames/psmodule.c (ps_unicodes_init): Fix alloc debugging.
diff --git a/src/base/ftbitmap.c b/src/base/ftbitmap.c
index 7a08cc9..dc28c40 100644
--- a/src/base/ftbitmap.c
+++ b/src/base/ftbitmap.c
@@ -860,7 +860,7 @@
 
     /* get source bitmap dimensions */
     source_llx = source_offset.x;
-    if ( FT_LONG_MIN + ( source_->rows << 6 ) + 64 > source_offset.y )
+    if ( FT_LONG_MIN + (FT_Pos)( source_->rows << 6 ) + 64 > source_offset.y )
     {
       FT_TRACE5((
         "FT_Bitmap_Blend: y coordinate overflow in source bitmap\n" ));
@@ -868,7 +868,7 @@
     }
     source_lly = source_offset.y - ( source_->rows << 6 );
 
-    if ( FT_LONG_MAX - ( source_->width << 6 ) - 64 < source_llx )
+    if ( FT_LONG_MAX - (FT_Pos)( source_->width << 6 ) - 64 < source_llx )
     {
       FT_TRACE5((
         "FT_Bitmap_Blend: x coordinate overflow in source bitmap\n" ));
@@ -881,7 +881,7 @@
     if ( target->width && target->rows )
     {
       target_llx = target_offset.x;
-      if ( FT_LONG_MIN + ( target->rows << 6 ) > target_offset.y )
+      if ( FT_LONG_MIN + (FT_Pos)( target->rows << 6 ) > target_offset.y )
       {
         FT_TRACE5((
           "FT_Bitmap_Blend: y coordinate overflow in target bitmap\n" ));
@@ -889,7 +889,7 @@
       }
       target_lly = target_offset.y - ( target->rows << 6 );
 
-      if ( FT_LONG_MAX - ( target->width << 6 ) < target_llx )
+      if ( FT_LONG_MAX - (FT_Pos)( target->width << 6 ) < target_llx )
       {
         FT_TRACE5((
           "FT_Bitmap_Blend: x coordinate overflow in target bitmap\n" ));
@@ -968,7 +968,7 @@
       target->pitch      = (int)final_width * 4;
       target->num_grays  = 256;
 
-      if ( FT_LONG_MAX / target->pitch < target->rows )
+      if ( FT_LONG_MAX / target->pitch < (int)target->rows )
       {
         FT_TRACE5(( "FT_Blend_Bitmap: target bitmap too large (%d x %d)\n",
                      final_width, final_rows ));
@@ -995,7 +995,7 @@
 
       new_pitch = (int)final_width * 4;
 
-      if ( FT_LONG_MAX / new_pitch < final_rows )
+      if ( FT_LONG_MAX / new_pitch < (int)final_rows )
       {
         FT_TRACE5(( "FT_Blend_Bitmap: target bitmap too large (%d x %d)\n",
                      final_width, final_rows ));
diff --git a/src/sfnt/ttcolr.c b/src/sfnt/ttcolr.c
index 977e149..a8ff026 100644
--- a/src/sfnt/ttcolr.c
+++ b/src/sfnt/ttcolr.c
@@ -255,7 +255,7 @@
     *aglyph_index = FT_NEXT_USHORT( iterator->p );
     *acolor_index = FT_NEXT_USHORT( iterator->p );
 
-    if ( *aglyph_index >= FT_FACE( face )->num_glyphs                ||
+    if ( *aglyph_index >= (FT_UInt)( FT_FACE( face )->num_glyphs )   ||
          ( *acolor_index != 0xFFFF                                 &&
            *acolor_index >= face->palette_data.num_palette_entries ) )
       return 0;
