Index: applications/editors/josm/plugins/geotools/src/org/openstreetmap/josm/plugins/geotools/GeoToolsPlugin.java
===================================================================
--- applications/editors/josm/plugins/geotools/src/org/openstreetmap/josm/plugins/geotools/GeoToolsPlugin.java	(revision 30755)
+++ applications/editors/josm/plugins/geotools/src/org/openstreetmap/josm/plugins/geotools/GeoToolsPlugin.java	(revision 31752)
@@ -4,5 +4,9 @@
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.Iterator;
+import java.util.ServiceLoader;
 
+import javax.imageio.spi.IIORegistry;
+import javax.imageio.spi.IIOServiceProvider;
 import javax.media.jai.JAI;
 import javax.media.jai.OperationRegistry;
@@ -13,4 +17,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.plugins.Plugin;
+import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.plugins.PluginInformation;
 
@@ -65,4 +70,17 @@
             }
         }
+
+        // Manual registering because plugin jar is not on application classpath
+        IIORegistry ioRegistry = IIORegistry.getDefaultInstance();
+        ClassLoader loader = PluginHandler.getPluginClassLoader();
+
+        Iterator<Class<?>> categories = ioRegistry.getCategories();
+        while (categories.hasNext()) {
+            @SuppressWarnings("unchecked")
+            Iterator<IIOServiceProvider> riter = ServiceLoader.load((Class<IIOServiceProvider>)categories.next(), loader).iterator();
+            while (riter.hasNext()) {
+                ioRegistry.registerServiceProvider(riter.next());
+            }
+        }
     }
 
