Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 7633)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 7634)
@@ -45,4 +45,5 @@
 import javax.swing.JTextArea;
 import javax.swing.KeyStroke;
+import javax.swing.LookAndFeel;
 import javax.swing.UIManager;
 import javax.swing.UnsupportedLookAndFeelException;
@@ -95,4 +96,5 @@
 import org.openstreetmap.josm.io.OnlineResource;
 import org.openstreetmap.josm.io.OsmApi;
+import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.I18n;
@@ -826,6 +828,24 @@
             }
             catch (final NoClassDefFoundError | ClassNotFoundException e) {
-                info("Look and Feel not found: " + laf);
-                Main.pref.put("laf", defaultlaf);
+                // Try to find look and feel in plugin classloaders
+                Class<?> klass = null;
+                for (ClassLoader cl : PluginHandler.getResourceClassLoaders()) {
+                    try {
+                        klass = cl.loadClass(laf);
+                        break;
+                    } catch (ClassNotFoundException ex) {
+                        // Do nothing
+                    }
+                }
+                if (klass != null && LookAndFeel.class.isAssignableFrom(klass)) {
+                    try {
+                        UIManager.setLookAndFeel((LookAndFeel) klass.newInstance());
+                    } catch (Exception ex) {
+                        warn("Cannot set Look and Feel: " + laf + ": "+ex.getMessage());
+                    }
+                } else {
+                    info("Look and Feel not found: " + laf);
+                    Main.pref.put("laf", defaultlaf);
+                }
             }
             catch (final UnsupportedLookAndFeelException e) {
