diff --git a/ChangeLog b/ChangeLog
index 5cdf5be..4dc8c55 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,5 @@
 2018-04-22  Werner Lemberg  <wl@gnu.org>
 
-	[base] Fix bitmap copying where the new pitch is smaller.
-
-	* src/base/ftbitmap.c (ft_bitmap_assure_buffer): Handle it.
-
-2018-04-22  Werner Lemberg  <wl@gnu.org>
-
 	Another fix for handling invalid format 2 cmaps.
 
 	The previous commit was incomplete.
diff --git a/src/base/ftbitmap.c b/src/base/ftbitmap.c
index 4f5ca5a..93efb09 100644
--- a/src/base/ftbitmap.c
+++ b/src/base/ftbitmap.c
@@ -237,35 +237,20 @@
       unsigned char*  out = buffer;
 
       unsigned char*  limit = bitmap->buffer + pitch * bitmap->rows;
+      unsigned int    delta = new_pitch - pitch;
 
 
       FT_MEM_ZERO( out, new_pitch * ypixels );
       out += new_pitch * ypixels;
 
-      if ( new_pitch > pitch )
+      while ( in < limit )
       {
-        unsigned int  delta = new_pitch - pitch;
+        FT_MEM_COPY( out, in, len );
+        in  += pitch;
+        out += pitch;
 
-
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += pitch;
-
-          /* we have to zero out the new (unused) pitch bytes */
-          FT_MEM_ZERO( out, delta );
-          out += delta;
-        }
-      }
-      else
-      {
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += new_pitch;
-        }
+        FT_MEM_ZERO( out, delta );
+        out += delta;
       }
     }
     else
@@ -276,32 +261,17 @@
       unsigned char*  out = buffer;
 
       unsigned char*  limit = bitmap->buffer + pitch * bitmap->rows;
+      unsigned int    delta = new_pitch - pitch;
 
 
-      if ( new_pitch > pitch )
+      while ( in < limit )
       {
-        unsigned int  delta = new_pitch - pitch;
+        FT_MEM_COPY( out, in, len );
+        in  += pitch;
+        out += pitch;
 
-
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += pitch;
-
-          /* we have to zero out the new (unused) pitch bytes */
-          FT_MEM_ZERO( out, delta );
-          out += delta;
-        }
-      }
-      else
-      {
-        while ( in < limit )
-        {
-          FT_MEM_COPY( out, in, len );
-          in  += pitch;
-          out += new_pitch;
-        }
+        FT_MEM_ZERO( out, delta );
+        out += delta;
       }
 
       FT_MEM_ZERO( out, new_pitch * ypixels );
