diff --git a/cmd/wuffs-c/internal/cgen/cgen.go b/cmd/wuffs-c/internal/cgen/cgen.go
index 59348ff..cc6fb03 100644
--- a/cmd/wuffs-c/internal/cgen/cgen.go
+++ b/cmd/wuffs-c/internal/cgen/cgen.go
@@ -982,7 +982,7 @@
 	b.writes("return wuffs_base__error__bad_wuffs_version;\n")
 	b.writes("}\n")
 	b.writes("if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {\n")
-	b.writes("memset(self, 0, sizeof_star_self);\n")
+	b.writes("memset(&(self->private_impl), 0, sizeof(self->private_impl));\n")
 	b.writes("} else if (self->private_impl.magic != 0) {\n")
 	b.writes("return wuffs_base__error__initialize_falsely_claimed_already_zeroed;\n")
 	b.writes("}\n")
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index f59760c..e4fd3f6 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -4963,7 +4963,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -5962,7 +5962,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -6240,7 +6240,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -8023,7 +8023,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -8599,7 +8599,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -10759,7 +10759,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
@@ -11232,7 +11232,7 @@
     return wuffs_base__error__bad_wuffs_version;
   }
   if ((initialize_flags & WUFFS_INITIALIZE__ALREADY_ZEROED) == 0) {
-    memset(self, 0, sizeof_star_self);
+    memset(&(self->private_impl), 0, sizeof(self->private_impl));
   } else if (self->private_impl.magic != 0) {
     return wuffs_base__error__initialize_falsely_claimed_already_zeroed;
   }
