diff --git a/release/c/wuffs-v0.3.c b/release/c/wuffs-v0.3.c
index 91181f8..06ceb1b 100644
--- a/release/c/wuffs-v0.3.c
+++ b/release/c/wuffs-v0.3.c
@@ -85,15 +85,15 @@
 // each major.minor branch, the commit count should increase monotonically.
 //
 // WUFFS_VERSION was overridden by "wuffs gen -version" based on revision
-// 161e4730d8b446a72d6152b8343da8543e7518bf committed on 2021-11-18.
+// e44920d382c9b542e17287664937e547becc7148 committed on 2021-11-19.
 #define WUFFS_VERSION 0x000030000
 #define WUFFS_VERSION_MAJOR 0
 #define WUFFS_VERSION_MINOR 3
 #define WUFFS_VERSION_PATCH 0
-#define WUFFS_VERSION_PRE_RELEASE_LABEL "beta.11"
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 3198
-#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20211118
-#define WUFFS_VERSION_STRING "0.3.0-beta.11+3198.20211118"
+#define WUFFS_VERSION_PRE_RELEASE_LABEL "beta.12"
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_COUNT 3202
+#define WUFFS_VERSION_BUILD_METADATA_COMMIT_DATE 20211119
+#define WUFFS_VERSION_STRING "0.3.0-beta.12+3202.20211119"
 
 // ---------------- Configuration
 
@@ -31153,6 +31153,30 @@
           goto label__outer__continue;
         } else if (v_lzw_status.repr == wuffs_base__suspension__short_write) {
           goto label__inner__continue;
+        } else if (self->private_impl.f_quirks[3] && (self->private_impl.f_dst_y >= self->private_impl.f_frame_rect_y1) && (self->private_impl.f_interlace == 0)) {
+          if (v_need_block_size || (v_block_size > 0)) {
+            self->private_data.s_decode_id_part2[0].scratch = ((uint32_t)(v_block_size));
+            WUFFS_BASE__COROUTINE_SUSPENSION_POINT(5);
+            if (self->private_data.s_decode_id_part2[0].scratch > ((uint64_t)(io2_a_src - iop_a_src))) {
+              self->private_data.s_decode_id_part2[0].scratch -= ((uint64_t)(io2_a_src - iop_a_src));
+              iop_a_src = io2_a_src;
+              status = wuffs_base__make_status(wuffs_base__suspension__short_read);
+              goto suspend;
+            }
+            iop_a_src += self->private_data.s_decode_id_part2[0].scratch;
+            if (a_src) {
+              a_src->meta.ri = ((size_t)(iop_a_src - a_src->data.ptr));
+            }
+            WUFFS_BASE__COROUTINE_SUSPENSION_POINT(6);
+            status = wuffs_gif__decoder__skip_blocks(self, a_src);
+            if (a_src) {
+              iop_a_src = a_src->data.ptr + a_src->meta.ri;
+            }
+            if (status.repr) {
+              goto suspend;
+            }
+          }
+          goto label__outer__break;
         }
         status = v_lzw_status;
         if (wuffs_base__status__is_error(&status)) {
