diff --git a/pressure-vessel/adverb-preload.h b/pressure-vessel/adverb-preload.h
index 53166178163d6a409e71189825fea2cb59f6dd23..3f6ca1f59238a4acf78bd90f50184a549325dba5 100644
--- a/pressure-vessel/adverb-preload.h
+++ b/pressure-vessel/adverb-preload.h
@@ -28,14 +28,25 @@ typedef struct
   gsize abi_index;
 } PvAdverbPreloadModule;
 
+#define PV_ADVERB_PRELOAD_MODULE_INIT \
+{ \
+  .name = NULL, \
+  .index_in_preload_variables = 0, \
+  .abi_index = PV_UNSPECIFIED_ABI, \
+}
+
 static inline void
 pv_adverb_preload_module_clear (gpointer p)
 {
   PvAdverbPreloadModule *self = p;
+  PvAdverbPreloadModule blank = PV_ADVERB_PRELOAD_MODULE_INIT;
 
   g_free (self->name);
+  *self = blank;
 }
 
+G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (PvAdverbPreloadModule, pv_adverb_preload_module_clear)
+
 gboolean pv_adverb_set_up_preload_modules (FlatpakBwrap *wrapped_command,
                                            PvPerArchDirs *lib_temp_dirs,
                                            const PvAdverbPreloadModule *preload_modules,