diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java
deleted file mode 100644
index d302fa0bfd0..00000000000
--- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/ParentLastURLClassLoader.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.jetbrains.kotlin.gradle.plugin;
-
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.List;
-
-/**
- * A parent-last classloader that will try the child classloader first and then the parent.
- * This takes a fair bit of doing because java really prefers parent-first.
- *
- * For those not familiar with class loading trickery, be wary
- *
- * http://stackoverflow.com/questions/5445511/how-do-i-create-a-parent-last-child-first-classloader-in-java-or-how-to-overr
- */
-public class ParentLastURLClassLoader extends ClassLoader {
- private final ChildURLClassLoader childClassLoader;
-
- public ParentLastURLClassLoader(@NotNull List classpath, @Nullable ClassLoader parent) {
- super(Thread.currentThread().getContextClassLoader());
-
- URL[] urls = classpath.toArray(new URL[classpath.size()]);
-
- childClassLoader = new ChildURLClassLoader(urls, new FindClassClassLoader(parent));
- }
-
- @Override
- protected synchronized Class> loadClass(@NotNull String name, boolean resolve) throws ClassNotFoundException {
- try {
- // first we try to find a class inside the child classloader
- return childClassLoader.findClass(name);
- }
- catch (ClassNotFoundException e) {
- // didn't find it, try the parent
- return super.loadClass(name, resolve);
- }
- }
-
- /**
- * This class allows me to call findClass on a classloader
- */
- private static class FindClassClassLoader extends ClassLoader {
- public FindClassClassLoader(@Nullable ClassLoader parent) {
- super(parent);
- }
-
- @NotNull
- @Override
- public Class> findClass(@NotNull String name) throws ClassNotFoundException {
- return super.findClass(name);
- }
- }
-
- /**
- * This class delegates (child then parent) for the findClass method for a URLClassLoader.
- * We need this because findClass is protected in URLClassLoader
- */
- public static class ChildURLClassLoader extends URLClassLoader {
- private final FindClassClassLoader realParent;
-
- public ChildURLClassLoader(@NotNull URL[] urls, @NotNull FindClassClassLoader realParent) {
- super(urls, null);
-
- this.realParent = realParent;
- }
-
-
- @NotNull
- @Override
- public Class> findClass(@NotNull String name) throws ClassNotFoundException {
- Class> loaded = findLoadedClass(name);
- if (loaded != null) {
- return loaded;
- }
-
- try {
- return super.findClass(name);
- }
- catch (ClassNotFoundException e) {
- // if that fails, we ask our real parent classloader to load the class (we give up)
- return realParent.loadClass(name);
- }
- }
- }
-}