diff --git a/pressure-vessel/wrap-setup.c b/pressure-vessel/wrap-setup.c
index 22c73f167314a4ed197727f672bd45e31bfdf412..8aafb6cc31535e3cbf990ddec68316d43f910c8b 100644
--- a/pressure-vessel/wrap-setup.c
+++ b/pressure-vessel/wrap-setup.c
@@ -546,12 +546,12 @@ pv_wrap_move_into_scope (const char *steam_app_id)
 }
 
 static void
-append_preload_internal (GPtrArray *argv,
+append_preload_internal (PvWrapContext *context,
+                         GPtrArray *argv,
                          PvPreloadVariableIndex which,
                          gsize abi_index,
                          const char *export_path,
                          const char *original_path,
-                         const char * const *env,
                          PvAppendPreloadFlags flags,
                          PvRuntime *runtime,
                          FlatpakExports *exports)
@@ -580,7 +580,7 @@ append_preload_internal (GPtrArray *argv,
 
       if (exports != NULL && export_path != NULL && export_path[0] == '/')
         {
-          const gchar *steam_path = _srt_environ_getenv (env, "STEAM_COMPAT_CLIENT_INSTALL_PATH");
+          const gchar *steam_path = g_environ_getenv (context->original_environ, "STEAM_COMPAT_CLIENT_INSTALL_PATH");
 
           if (steam_path != NULL
               && flatpak_has_path_prefix (export_path, steam_path))
@@ -620,10 +620,10 @@ append_preload_internal (GPtrArray *argv,
  * Arguments are the same as for pv_wrap_append_preload().
  */
 static void
-append_preload_unsupported_token (GPtrArray *argv,
+append_preload_unsupported_token (PvWrapContext *context,
+                                  GPtrArray *argv,
                                   PvPreloadVariableIndex which,
                                   const char *preload,
-                                  const char * const *env,
                                   PvAppendPreloadFlags flags,
                                   PvRuntime *runtime,
                                   FlatpakExports *exports)
@@ -673,12 +673,12 @@ append_preload_unsupported_token (GPtrArray *argv,
                preload);
     }
 
-  append_preload_internal (argv,
+  append_preload_internal (context,
+                           argv,
                            which,
                            PV_UNSPECIFIED_ABI,
                            export_path,
                            preload,
-                           env,
                            flags,
                            runtime,
                            exports);
@@ -695,10 +695,10 @@ append_preload_unsupported_token (GPtrArray *argv,
  * Arguments are the same as for pv_wrap_append_preload().
  */
 static void
-append_preload_per_architecture (GPtrArray *argv,
+append_preload_per_architecture (PvWrapContext *context,
+                                 GPtrArray *argv,
                                  PvPreloadVariableIndex which,
                                  const char *preload,
-                                 const char * const *env,
                                  PvAppendPreloadFlags flags,
                                  PvRuntime *runtime,
                                  FlatpakExports *exports)
@@ -775,12 +775,12 @@ append_preload_per_architecture (GPtrArray *argv,
         {
           g_debug ("Found %s version of %s at %s",
                    multiarch_tuple, preload, path);
-          append_preload_internal (argv,
+          append_preload_internal (context,
+                                   argv,
                                    which,
                                    i,
                                    path,
                                    path,
-                                   env,
                                    flags,
                                    runtime,
                                    exports);
@@ -794,10 +794,10 @@ append_preload_per_architecture (GPtrArray *argv,
 }
 
 static void
-append_preload_basename (GPtrArray *argv,
+append_preload_basename (PvWrapContext *context,
+                         GPtrArray *argv,
                          PvPreloadVariableIndex which,
                          const char *preload,
-                         const char * const *env,
                          PvAppendPreloadFlags flags,
                          PvRuntime *runtime,
                          FlatpakExports *exports)
@@ -832,12 +832,12 @@ append_preload_basename (GPtrArray *argv,
                "passing %s through as-is",
                preload,
                pv_preload_variables[which].variable);
-      append_preload_internal (argv,
+      append_preload_internal (context,
+                               argv,
                                which,
                                PV_UNSPECIFIED_ABI,
                                NULL,
                                preload,
-                               env,
                                flags,
                                runtime,
                                NULL);
@@ -851,10 +851,10 @@ append_preload_basename (GPtrArray *argv,
       g_debug ("Did not find \"%s\" in runtime or graphics stack provider, "
                "splitting architectures",
                preload);
-      append_preload_per_architecture (argv,
+      append_preload_per_architecture (context,
+                                       argv,
                                        which,
                                        preload,
-                                       env,
                                        flags,
                                        runtime,
                                        exports);
@@ -863,14 +863,13 @@ append_preload_basename (GPtrArray *argv,
 
 /**
  * pv_wrap_append_preload:
+ * @context: Context we are running in
  * @argv: (element-type filename): Array of command-line options to populate
  * @which: Either `LD_AUDIT` or `LD_PRELOAD`
  * @preload: (type filename): Path of preloadable module in current
  *  namespace, possibly including special ld.so tokens such as `$LIB`,
  *  or basename of a preloadable module to be found in the standard
  *  library search path
- * @env: (array zero-terminated=1) (element-type filename): Environment
- *  variables to be used instead of `environ`
  * @flags: Flags to adjust behaviour
  * @runtime: (nullable): Runtime to be used in container
  * @exports: (nullable): Used to configure extra paths that need to be
@@ -880,10 +879,10 @@ append_preload_basename (GPtrArray *argv,
  * to @argv.
  */
 void
-pv_wrap_append_preload (GPtrArray *argv,
+pv_wrap_append_preload (PvWrapContext *context,
+                        GPtrArray *argv,
                         PvPreloadVariableIndex which,
                         const char *preload,
-                        const char * const *env,
                         PvAppendPreloadFlags flags,
                         PvRuntime *runtime,
                         FlatpakExports *exports)
@@ -892,6 +891,7 @@ pv_wrap_append_preload (GPtrArray *argv,
   SrtLoadableFlags loadable_flags;
   const char *variable;
 
+  g_return_if_fail (PV_IS_WRAP_CONTEXT (context));
   g_return_if_fail (argv != NULL);
   g_return_if_fail (preload != NULL);
   g_return_if_fail (runtime == NULL || PV_IS_RUNTIME (runtime));
@@ -921,10 +921,10 @@ pv_wrap_append_preload (GPtrArray *argv,
       case SRT_LOADABLE_KIND_BASENAME:
         /* Basenames can't have dynamic string tokens. */
         g_warn_if_fail ((loadable_flags & SRT_LOADABLE_FLAGS_DYNAMIC_TOKENS) == 0);
-        append_preload_basename (argv,
+        append_preload_basename (context,
+                                 argv,
                                  which,
                                  preload,
-                                 env,
                                  flags,
                                  runtime,
                                  exports);
@@ -935,10 +935,10 @@ pv_wrap_append_preload (GPtrArray *argv,
         if (loadable_flags & (SRT_LOADABLE_FLAGS_ORIGIN
                               | SRT_LOADABLE_FLAGS_UNKNOWN_TOKENS))
           {
-            append_preload_unsupported_token (argv,
+            append_preload_unsupported_token (context,
+                                              argv,
                                               which,
                                               preload,
-                                              env,
                                               flags,
                                               runtime,
                                               exports);
@@ -947,10 +947,10 @@ pv_wrap_append_preload (GPtrArray *argv,
           {
             g_debug ("Found $LIB or $PLATFORM in \"%s\", splitting architectures",
                      preload);
-            append_preload_per_architecture (argv,
+            append_preload_per_architecture (context,
+                                             argv,
                                              which,
                                              preload,
-                                             env,
                                              flags,
                                              runtime,
                                              exports);
@@ -960,12 +960,12 @@ pv_wrap_append_preload (GPtrArray *argv,
             /* All dynamic tokens should be handled above, so we can
              * assume that preload is a concrete filename */
             g_warn_if_fail ((loadable_flags & SRT_LOADABLE_FLAGS_DYNAMIC_TOKENS) == 0);
-            append_preload_internal (argv,
+            append_preload_internal (context,
+                                     argv,
                                      which,
                                      PV_UNSPECIFIED_ABI,
                                      preload,
                                      preload,
-                                     env,
                                      flags,
                                      runtime,
                                      exports);
diff --git a/pressure-vessel/wrap-setup.h b/pressure-vessel/wrap-setup.h
index 97c193c667a85ecf59d60f85ca87f600ef3cf5c0..7d7bd525c72639a379b176bb190fa899ea4e53e1 100644
--- a/pressure-vessel/wrap-setup.h
+++ b/pressure-vessel/wrap-setup.h
@@ -84,10 +84,10 @@ typedef enum
   PV_APPEND_PRELOAD_FLAGS_NONE = 0
 } PvAppendPreloadFlags;
 
-void pv_wrap_append_preload (GPtrArray *argv,
+void pv_wrap_append_preload (PvWrapContext *context,
+                             GPtrArray *argv,
                              PvPreloadVariableIndex which,
                              const char *preload,
-                             const char * const *env,
                              PvAppendPreloadFlags flags,
                              PvRuntime *runtime,
                              FlatpakExports *exports);
diff --git a/pressure-vessel/wrap.c b/pressure-vessel/wrap.c
index 838ebb637a6ad584b2f052b46ded2276a315664c..aec7f4412c5155a0e4965ef10d424f2646d18257 100644
--- a/pressure-vessel/wrap.c
+++ b/pressure-vessel/wrap.c
@@ -842,10 +842,10 @@ main (int argc,
 
           g_assert (module->which >= 0);
           g_assert (module->which < G_N_ELEMENTS (pv_preload_variables));
-          pv_wrap_append_preload (adverb_preload_argv,
+          pv_wrap_append_preload (self,
+                                  adverb_preload_argv,
                                   module->which,
                                   module->preload,
-                                  _srt_const_strv (environ),
                                   append_preload_flags,
                                   runtime,
                                   exports);
diff --git a/tests/pressure-vessel/wrap-setup.c b/tests/pressure-vessel/wrap-setup.c
index 0cd08b60921ee412870400f8366d6d5c09c41f03..325493a044f05cccbc2bb65315aaed6adc57ff93 100644
--- a/tests/pressure-vessel/wrap-setup.c
+++ b/tests/pressure-vessel/wrap-setup.c
@@ -1612,10 +1612,10 @@ populate_ld_preload (Fixture *f,
                                  preloads[i].warning);
         }
 
-      pv_wrap_append_preload (argv,
+      pv_wrap_append_preload (f->context,
+                              argv,
                               PV_PRELOAD_VARIABLE_INDEX_LD_PRELOAD,
                               preloads[i].string,
-                              _srt_const_strv (f->context->original_environ),
                               flags | PV_APPEND_PRELOAD_FLAGS_IN_UNIT_TESTS,
                               runtime,
                               exports);