Index: src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- src/org/openstreetmap/josm/data/Preferences.java	(revision 204)
+++ src/org/openstreetmap/josm/data/Preferences.java	(revision 205)
@@ -61,4 +61,6 @@
 	 */
 	public String getPreferencesDir() {
+		if (System.getenv("APPDATA") != null)
+			return System.getenv("APPDATA")+"/JOSM/";
 		return System.getProperty("user.home")+"/.josm/";
 	}
Index: src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- src/org/openstreetmap/josm/gui/MainApplication.java	(revision 204)
+++ src/org/openstreetmap/josm/gui/MainApplication.java	(revision 205)
@@ -84,4 +84,16 @@
 		// get the preferences.
 		final File prefDir = new File(Main.pref.getPreferencesDir());
+
+		// check if preferences directory has moved (TODO: Update code. Remove this after some time)
+		File oldPrefDir = new File(System.getProperty("user.home")+"/.josm");
+		if (!prefDir.isDirectory() && oldPrefDir.isDirectory()) {
+			if (oldPrefDir.renameTo(prefDir)) {
+				// do not translate this
+				JOptionPane.showMessageDialog(null, "The preference directory has been moved to "+prefDir);
+			} else {
+				JOptionPane.showMessageDialog(null, "The preference directory location has changed. Please move "+oldPrefDir+" to "+prefDir);
+			}
+		}
+
 		if (prefDir.exists() && !prefDir.isDirectory()) {
 			JOptionPane.showMessageDialog(null, "Cannot open preferences directory: "+Main.pref.getPreferencesDir());
@@ -105,7 +117,7 @@
 		if (args.containsKey("default-classloader"))
 			PluginInformation.useJosmClassloader = true;
-		
+
 		// load the early plugins
-	    if (Main.pref.hasKey("plugins")) {
+		if (Main.pref.hasKey("plugins")) {
 			for (String pluginName : Main.pref.get("plugins").split(",")) {
 				try {
@@ -169,5 +181,5 @@
 			public void run() {
 				main.postConstructorProcessCmdLine(args);
-            }
+			}
 		});
 	}
Index: src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- src/org/openstreetmap/josm/gui/MapFrame.java	(revision 204)
+++ src/org/openstreetmap/josm/gui/MapFrame.java	(revision 205)
@@ -51,5 +51,6 @@
 	public MapView mapView;
 	/**
-	 * The toolbar with the action icons
+	 * The toolbar with the action icons. To add new toggle dialog actions, use addToggleDialog
+	 * instead of adding directly to this list.
 	 */
 	public JToolBar toolBarActions = new JToolBar(JToolBar.VERTICAL);
@@ -60,5 +61,9 @@
 
 	public ConflictDialog conflictDialog;
-	private JPanel toggleDialogs = new JPanel();
+	/**
+	 * The panel list of all toggle dialog icons. To add new toggle dialog actions, use addToggleDialog
+	 * instead of adding directly to this list.
+	 */
+	public JPanel toggleDialogs = new JPanel();
 
 	public final ButtonGroup toolGroup = new ButtonGroup();
@@ -118,10 +123,10 @@
 		toggleDialogs.setLayout(new BoxLayout(toggleDialogs, BoxLayout.Y_AXIS));
 
-		addIconToggle(toggleDialogs, new LayerListDialog(this));
-		addIconToggle(toggleDialogs, new PropertiesDialog(this));
-		addIconToggle(toggleDialogs, new HistoryDialog());
-		addIconToggle(toggleDialogs, new SelectionListDialog());
-		addIconToggle(toggleDialogs, conflictDialog = new ConflictDialog());
-		addIconToggle(toggleDialogs, new CommandStackDialog(this));
+		addToggleDialog(new LayerListDialog(this));
+		addToggleDialog(new PropertiesDialog(this));
+		addToggleDialog(new HistoryDialog());
+		addToggleDialog(new SelectionListDialog());
+		addToggleDialog(conflictDialog = new ConflictDialog());
+		addToggleDialog(new CommandStackDialog(this));
 
 		// status line below the map
@@ -147,5 +152,9 @@
 	}
 
-	private void addIconToggle(JPanel toggleDialogs, ToggleDialog dlg) {
+	/**
+	 * Call this to add new toggle dialogs to the left button-list
+	 * @param dlg The toggle dialog. It must not be in the list already.
+	 */
+	public void addToggleDialog(ToggleDialog dlg) {
 		IconToggleButton button = new IconToggleButton(dlg.action);
 		dlg.action.button = button;
Index: src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 204)
+++ src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 205)
@@ -359,5 +359,5 @@
 			JComboBox value = new JComboBox(e.getValue().toArray());
 			value.setEditable(true);
-			value.getEditor().setItem(valueCount.get(e.getKey()) != newSelection.size() ? tr("<different>") : e.getValue().iterator().next());
+			value.getEditor().setItem(e.getValue().size() > 1 || valueCount.get(e.getKey()) != newSelection.size() ? tr("<different>") : e.getValue().iterator().next());
 			data.addRow(new Object[]{e.getKey(), value});
 		}
Index: src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java
===================================================================
--- src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 204)
+++ src/org/openstreetmap/josm/tools/BugReportExceptionHandler.java	(revision 205)
@@ -65,5 +65,5 @@
 							JOptionPane.YES_NO_OPTION);
 					if (answer == JOptionPane.OK_OPTION) {
-						plugins.remove(pluginName);
+						while (plugins.remove(pluginName)) {}
 						String p = "";
 						for (String s : plugins)
@@ -157,4 +157,6 @@
 			if (c.contains("landsat.") || c.contains(".LandsatLayer"))
 				return "landsat";
+			if (c.contains("livegps."))
+				return "livegps";
 			if (c.contains("mappaint."))
 				return "mappaint";
