diff --git a/src/post_modules/_Image_WebP/image_webp.cmod b/src/post_modules/_Image_WebP/image_webp.cmod
index aa513800ff5090e6fddd1d95043b3daa66110c66..e1952719e89685d6cf18d44b05b99547c8bf2787 100644
--- a/src/post_modules/_Image_WebP/image_webp.cmod
+++ b/src/post_modules/_Image_WebP/image_webp.cmod
@@ -187,11 +187,10 @@ static struct object *convert_to_rgb( struct yuv *yuv )
 
         for( xp = 0; xp<yuv->xsize; xp++, row++, pos++ )
         {
-            if( xp & 1 ) hpos++;
-
             row->r = yuv->V[ hpos ];
             row->g = yuv->Y[ pos ];
             row->b = yuv->U[ hpos ];
+            if( xp & 1 ) hpos++;
         }
     }
     apply( Pike_sp[-1].u.object, "yuv_to_rgb", 0 );