diff --git a/package_manager/src/ProcessFactory.php b/package_manager/src/ProcessFactory.php
index 6fc84dc9864e3e851e282a2baf32066f32d4a397..a839864465e08b1cf1c01832d35ddac8942174e5 100644
--- a/package_manager/src/ProcessFactory.php
+++ b/package_manager/src/ProcessFactory.php
@@ -47,10 +47,16 @@ final class ProcessFactory implements ProcessFactoryInterface {
    * {@inheritdoc}
    */
   public function create(array $command): Process {
+    if ($this->isComposerCommand($command)) {
+      array_unshift($command, '-dpcre.jit=0');
+      array_unshift($command, PHP_BINARY);
+      $composer_command = TRUE;
+    }
+
     $process = $this->decorated->create($command);
 
     $env = $process->getEnv();
-    if ($this->isComposerCommand($command)) {
+    if ($this->isComposerCommand($command) || isset($composer_command)) {
       $env['COMPOSER_HOME'] = $this->getComposerHomePath();
     }
     // Ensure that the running PHP binary is in the PATH.