diff --git a/context.xml b/context.xml
deleted file mode 100644
index 889fb22d9..000000000
--- a/context.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/context.xmlold b/context.xmlold
deleted file mode 100644
index 709b18244..000000000
--- a/context.xmlold
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/webgoat-classloader/pom.xml b/webgoat-classloader/pom.xml
new file mode 100644
index 000000000..ecf0205b0
--- /dev/null
+++ b/webgoat-classloader/pom.xml
@@ -0,0 +1,18 @@
+
+ WebGoat
+ 4.0.0
+ org.owasp.webgoat
+ webgoat-classloader
+ jar
+ 6.1.0
+
+
+
+ org.apache.tomcat
+ tomcat-catalina
+ 7.0.47
+
+
+
+
\ No newline at end of file
diff --git a/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java b/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java
new file mode 100644
index 000000000..6f7d4d683
--- /dev/null
+++ b/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java
@@ -0,0 +1,31 @@
+package org.owasp.webgoat.classloader;
+
+import org.apache.catalina.loader.WebappClassLoader;
+
+import java.net.URL;
+import java.util.List;
+
+/**
+ * Classloader for Tomcat.
+ *
+ * We need to provide this classloader otherwise jsp files cannot be compiled. JspContextWrapper uses
+ * Thread.currentThread().getContextClassLoader() but during initialisation it loads the classloader which means
+ * this classloader will never pickup the plugin classes.
+ *
+ * With this loader we can add jars we load during the plugin loading and the jsp will pick it up because this is
+ * the same classloader.
+ */
+public class PluginClassLoader extends WebappClassLoader {
+ public PluginClassLoader() {
+ }
+
+ public PluginClassLoader(ClassLoader parent) {
+ super(parent);
+ }
+
+ public void addURL(List urls) {
+ for (URL url : urls) {
+ super.addURL(url);
+ }
+ }
+}