Index: src/org/openstreetmap/josm/Main.java
===================================================================
--- src/org/openstreetmap/josm/Main.java	(revision 191)
+++ src/org/openstreetmap/josm/Main.java	(revision 192)
@@ -26,5 +26,4 @@
 import javax.swing.UIManager;
 
-import org.openstreetmap.josm.actions.AboutAction;
 import org.openstreetmap.josm.actions.DownloadAction;
 import org.openstreetmap.josm.actions.DownloadAction.DownloadTask;
@@ -263,9 +262,4 @@
 	public static void preConstructorInit(Map<String, Collection<String>> args) {
 		try {
-			Main.pref.upgrade(Integer.parseInt(AboutAction.version));
-		} catch (NumberFormatException e1) {
-		}
-
-		try {
 			Main.proj = (Projection)Class.forName(Main.pref.get("projection")).newInstance();
 		} catch (final Exception e) {
@@ -310,5 +304,5 @@
 			bounds = !args.containsKey("no-fullscreen") ? new Rectangle(0,0,screenDimension.width,screenDimension.height) : new Rectangle(1000,740);
 
-			pleaseWaitDlg = new PleaseWaitDialog();
+		pleaseWaitDlg = new PleaseWaitDialog();
 	}
 
Index: src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- src/org/openstreetmap/josm/data/Preferences.java	(revision 191)
+++ src/org/openstreetmap/josm/data/Preferences.java	(revision 192)
@@ -161,10 +161,4 @@
 	}
 
-	public final void upgrade(int oldVersion) {
-		if (oldVersion > 117) return;
-		if (!properties.containsKey("color.scale"))
-			properties.put("color.scale", ColorHelper.color2html(Color.white));
-	}
-
 	public Collection<Bookmark> loadBookmarks() throws IOException {
 		File bookmarkFile = new File(getPreferencesDir()+"bookmarks");
Index: src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainApplication.java	(revision 191)
+++ src/org/openstreetmap/josm/gui/MainApplication.java	(revision 192)
@@ -101,4 +101,8 @@
 		}
 
+		// determine what classloader to be used for plugins
+		if (args.containsKey("default-classloader"))
+			PluginInformation.useJosmClassloader = true;
+		
 		// load the early plugins
 	    if (Main.pref.hasKey("plugins")) {
@@ -134,4 +138,5 @@
 					"\t--downloadgps=minlat,minlon,maxlat,maxlon "+tr("Download the bounding box as raw gps")+"\n"+
 					"\t--selection=<searchstring>                "+tr("Select with the given search")+"\n"+
+					"\t--default-classloader                     "+tr("Load all plugins with the default class loader")+"\n"+
 					"\t--no-fullscreen                           "+tr("Don't launch in fullscreen mode")+"\n"+
 					"\t--reset-preferences                       "+tr("Reset the preferences to default")+"\n\n"+
Index: src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 191)
+++ src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 192)
@@ -21,4 +21,17 @@
  */
 public class PluginInformation {
+	
+	/**
+	 * Whether to use the standard classloader to load the plugins or
+	 * an seperate class loader. Note that in case of the standard classloader,
+	 * all plugin files has to be included in the main josm.jar classpath
+	 * 
+	 * Set via command line parameter to true.
+	 * 
+	 * This switch is intended for debugging JOSM (or prepackaging plugins
+	 * together with JOSM).
+	 */
+	public static boolean useJosmClassloader = false;
+	
 	public final File file;
 	public final String name;
@@ -89,4 +102,7 @@
 	public Class<?> loadClass() {
 		try {
+			if (useJosmClassloader)
+				return Class.forName(className);
+
 			URL[] urls = new URL[libraries.size()];
 			urls = libraries.toArray(urls);
