diff --git a/src/main/src/main/java/org/geoserver/GeoserverInitStartupListener.java b/src/main/src/main/java/org/geoserver/GeoserverInitStartupListener.java
index 0f2dbec..6e3849b 100644
--- a/src/main/src/main/java/org/geoserver/GeoserverInitStartupListener.java
+++ b/src/main/src/main/java/org/geoserver/GeoserverInitStartupListener.java
@@ -20,6 +20,7 @@ import java.util.concurrent.TimeUnit;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.imageio.ImageIO;
 import javax.imageio.spi.IIORegistry;
 import javax.imageio.spi.IIOServiceProvider;
 import javax.imageio.spi.ImageReaderSpi;
@@ -116,7 +117,11 @@ public class GeoserverInitStartupListener implements ServletContextListener {
             // let's disable it (the native png writer is on the other side faster)...
             ImageIOExt.allowNativeCodec("png", ImageReaderSpi.class, false);
         }
-        
+
+        //HACK to fix issue with tomcat and JreMemoryLeakPreventionListener causing issues with 
+        // IIORegistry leading to imageio plugins not being properly initialized
+        ImageIO.scanForPlugins();
+
         // initialize geotools factories so that we don't make a spi lookup every time a factory is needed
         Hints.putSystemDefault(Hints.FILTER_FACTORY, CommonFactoryFinder.getFilterFactory2(null));
         Hints.putSystemDefault(Hints.STYLE_FACTORY, CommonFactoryFinder.getStyleFactory(null));
