diff --git a/tomee-patch-core/pom.xml b/tomee-patch-core/pom.xml
index 9ab050c..5a12ccb 100644
--- a/tomee-patch-core/pom.xml
+++ b/tomee-patch-core/pom.xml
@@ -72,6 +72,11 @@
       <version>1.3.13</version>
     </dependency>
     <dependency>
+      <groupId>org.tomitribe</groupId>
+      <artifactId>swizzle</artifactId>
+      <version>1.1</version>
+    </dependency>
+    <dependency>
       <groupId>org.tomitribe.jkta</groupId>
       <artifactId>jkta</artifactId>
       <version>0.10</version>
diff --git a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
index 09faa88..be617bc 100644
--- a/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
+++ b/tomee-patch-core/src/main/java/org/apache/tomee/patch/core/Transformation.java
@@ -19,6 +19,7 @@
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassWriter;
 import org.objectweb.asm.Opcodes;
+import org.tomitribe.swizzle.stream.StreamBuilder;
 import org.tomitribe.util.IO;
 
 import java.io.File;
@@ -102,7 +103,7 @@
                     } else if (isZip(path)) {
                         scanJar(path, zipInputStream, zipOutputStream);
                     } else {
-                        IO.copy(zipInputStream, zipOutputStream);
+                        scanResource(zipInputStream, zipOutputStream);
                     }
                 } finally {
                     zipOutputStream.closeEntry();
@@ -133,6 +134,15 @@
         }
     }
 
+    private void scanResource(InputStream inputStream, final OutputStream outputStream) throws IOException {
+        inputStream = StreamBuilder.create(inputStream)
+                .replace("javax.el.ELResolver", "jakarta.el.ELResolver")
+                .replace("javax.servlet.", "jakarta.servlet.")
+                .replace("javax.faces.", "jakarta.faces.")
+                .get();
+        IO.copy(inputStream, outputStream);
+    }
+
     private static void copyAttributes(final ZipEntry oldEntry, final ZipEntry newEntry) {
         Copy.copy(oldEntry, newEntry)
                 .att(ZipEntry::getTime, ZipEntry::setTime)
