Index: trunk/src/org/openstreetmap/josm/plugins/PluginClassLoader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginClassLoader.java	(revision 14231)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginClassLoader.java	(revision 14232)
@@ -81,4 +81,18 @@
 
     @Override
+    public URL findResource(String name) {
+        URL resource = super.findResource(name);
+        if (resource == null) {
+            for (PluginClassLoader dep : dependencies) {
+                resource = dep.findResource(name);
+                if (resource != null) {
+                    break;
+                }
+            }
+        }
+        return resource;
+    }
+
+    @Override
     public String toString() {
         return "PluginClassLoader [urls=" + Arrays.toString(getURLs()) +
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 14231)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 14232)
@@ -345,6 +345,11 @@
         try {
             Constructor<?> c = klass.getConstructor(PluginInformation.class);
-            Object plugin = c.newInstance(this);
-            return new PluginProxy(plugin, this, classLoader);
+            ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+            Thread.currentThread().setContextClassLoader(classLoader);
+            try {
+                return new PluginProxy(c.newInstance(this), this, classLoader);
+            } finally {
+                Thread.currentThread().setContextClassLoader(contextClassLoader);
+            }
         } catch (ReflectiveOperationException e) {
             throw new PluginException(name, e);
