Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 441)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 442)
@@ -170,5 +170,5 @@
 	 * in log.
 	 */
-	protected void save() {
+	public void save() {
 		try {
 			final PrintWriter out = new PrintWriter(new FileWriter(getPreferencesDir() + "preferences"), false);
@@ -189,9 +189,15 @@
 		final BufferedReader in = new BufferedReader(new FileReader(getPreferencesDir()+"preferences"));
 		int lineNumber = 0;
+		ArrayList<Integer> errLines = new ArrayList<Integer>();
 		for (String line = in.readLine(); line != null; line = in.readLine(), lineNumber++) {
 			final int i = line.indexOf('=');
-			if (i == -1 || i == 0)
-				throw new IOException("Malformed config file at line "+lineNumber);
+			if (i == -1 || i == 0) {
+				errLines.add(lineNumber);
+				continue;
+			}
 			properties.put(line.substring(0,i), line.substring(i+1));
+		}
+		if (!errLines.isEmpty()) {
+			throw new IOException("Malformed config file at lines " + errLines);
 		}
 	}
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 441)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 442)
@@ -101,4 +101,9 @@
 		if (!prefDir.exists())
 			prefDir.mkdirs();
+
+		if (!new File(Main.pref.getPreferencesDir()+"preferences").exists()) {
+			Main.pref.resetToDefault();
+		}
+
 		try {
 			if (args.containsKey("reset-preferences")) {
@@ -109,6 +114,8 @@
 		} catch (final IOException e1) {
 			e1.printStackTrace();
-			JOptionPane.showMessageDialog(null, "Preferences could not be loaded. Writing default preference file to "+pref.getPreferencesDir()+"preferences");
-			Main.pref.resetToDefault();
+			String backup = Main.pref.getPreferencesDir() + "preferences.bak";
+			JOptionPane.showMessageDialog(null, "Preferences file had errors.  Making backup of old one to " + backup);
+			new File(Main.pref.getPreferencesDir() + "preferences").renameTo(new File(backup));
+			Main.pref.save();
 		}
 
