Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1205)
@@ -232,5 +232,5 @@
         String [] oldplugins = new String[] {"mappaint", "unglueplugin",
         "lang-de", "lang-en_GB", "lang-fr", "lang-it", "lang-pl", "lang-ro",
-        "lang-ru", "ewmsplugin", "ywms"};
+        "lang-ru", "ewmsplugin", "ywms", "tways-0.2", "geotagged", "landsat"};
         for (String p : oldplugins) {
             if (plugins.contains(p)) {
Index: trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/actions/GpxExportAction.java	(revision 1205)
@@ -136,5 +136,5 @@
         } catch (IOException x) {
             x.printStackTrace();
-            JOptionPane.showMessageDialog(Main.parent, tr("Error while exporting {0}", fn)+":\n"+x.getMessage(), tr("Error"), JOptionPane.ERROR_MESSAGE);
+            JOptionPane.showMessageDialog(Main.parent, tr("Error while exporting {0}:\n{1}", fn,x.getMessage()), tr("Error"), JOptionPane.ERROR_MESSAGE);
         }
     }
Index: trunk/src/org/openstreetmap/josm/actions/PasteAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/actions/PasteAction.java	(revision 1205)
@@ -88,7 +88,11 @@
             List<RelationMember> members = new ArrayList<RelationMember>();
             for (RelationMember m : r.members) {
-                RelationMember mnew = new RelationMember(m);
-                mnew.member = map.get(m.member);
-                members.add(mnew);
+                OsmPrimitive mo = map.get(m.member);
+                if(mo != null) /* TODO - This only prevents illegal data, but kills the relation */
+                {
+                    RelationMember mnew = new RelationMember(m);
+                    mnew.member = map.get(m.member);
+                    members.add(mnew);
+                }
             }
             rnew.members.clear();
Index: trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/corrector/TagCorrector.java	(revision 1205)
@@ -76,11 +76,11 @@
 
             final JMultilineLabel label1 = new JMultilineLabel(description);
-            label1.setMaxWidth(400);
-            p.add(label1, GBC.eop());
+            label1.setMaxWidth(600);
+            p.add(label1, GBC.eop().anchor(GBC.CENTER));
 
             final JMultilineLabel label2 = new JMultilineLabel(
                     tr("Please select which property changes you want to apply."));
-            label2.setMaxWidth(400);
-            p.add(label2, GBC.eop());
+            label2.setMaxWidth(600);
+            p.add(label2, GBC.eop().anchor(GBC.CENTER));
 
             for (OsmPrimitive primitive : tagCorrectionsMap.keySet()) {
@@ -103,5 +103,5 @@
                         tagCorrections);
                 final JScrollPane scrollPane = new JScrollPane(table);
-                p.add(scrollPane, GBC.eop());
+                p.add(scrollPane, GBC.eop().fill(GBC.HORIZONTAL));
 
                 tagTableMap.put(primitive, table);
@@ -127,5 +127,5 @@
                         roleCorrections);
                 final JScrollPane scrollPane = new JScrollPane(table);
-                p.add(scrollPane, GBC.eop());
+                p.add(scrollPane, GBC.eop().fill(GBC.HORIZONTAL));
 
                 roleTableMap.put(primitive, table);
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1205)
@@ -307,5 +307,5 @@
         for (RelationMember m : r.members)
         {
-            if (!m.member.incomplete && !m.member.deleted
+            if (m.member != null && !m.member.incomplete && !m.member.deleted
             && !(m.member instanceof Relation))
             {
@@ -355,5 +355,5 @@
                 {
                     /* second call - draw nodes */
-                    if (!m.member.incomplete && !m.member.deleted
+                    if (m.member != null && !m.member.incomplete && !m.member.deleted
                     && m.member instanceof Node)
                     {
@@ -382,9 +382,11 @@
         for (RelationMember m : r.members)
         {
-            if(m.member.incomplete)
-                incomplete = true;
+            if(m.member == null) /* Should not happen, must be a bug elsewhere */
+                r.putError(tr("Empty member in relation."), true);
             else if(m.member.deleted)
                 r.putError(tr("Deleted member ''{0}'' in relation.",
                 m.member.getName()), true);
+            else if(m.member.incomplete)
+                incomplete = true;
             else
             {
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 1205)
@@ -130,20 +130,11 @@
         // 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());
-            return;
-        }
-        if (!prefDir.exists())
+        if (prefDir.exists()) {
+            if(!prefDir.isDirectory()) {
+                JOptionPane.showMessageDialog(null, tr("Cannot open preferences directory: {0}",Main.pref.getPreferencesDir()));
+                return;
+            }
+        }
+        else
             prefDir.mkdirs();
 
@@ -161,11 +152,8 @@
             e1.printStackTrace();
             String backup = Main.pref.getPreferencesDir() + "preferences.bak";
-            JOptionPane.showMessageDialog(null, "Preferences file had errors.  Making backup of old one to " + backup);
+            JOptionPane.showMessageDialog(null, tr("Preferences file had errors. Making backup of old one to {0}.", backup));
             new File(Main.pref.getPreferencesDir() + "preferences").renameTo(new File(backup));
             Main.pref.save();
         }
-
-        // TODO remove this in early 2009 - just here to weed out color setting we don't use any more
-        Main.pref.put("downloaded Area", null);
 
         String localeName = null; //The locale to use
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationEditor.java	(revision 1205)
@@ -159,5 +159,5 @@
      * Compare two OsmPrimitives.
      */
-    private static int compareMemebers(OsmPrimitive o1, OsmPrimitive o2) {
+    private static int compareMembers(OsmPrimitive o1, OsmPrimitive o2) {
         return collator.compare(o1.getName(), o2.getName());
     }
@@ -168,5 +168,5 @@
 
             if (roleResult == 0)
-                roleResult = compareMemebers(r1.member, r2.member);
+                roleResult = compareMembers(r1.member, r2.member);
 
             return roleResult;
Index: trunk/src/org/openstreetmap/josm/io/OsmWriter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1204)
+++ trunk/src/org/openstreetmap/josm/io/OsmWriter.java	(revision 1205)
@@ -94,10 +94,4 @@
             super.header(out);
             for (DataSource s : ds.dataSources) {
-                // TODO: remove <bound> output after a grace period (1st October 08)
-                out.print("  <bound note='this tag is deprecated and only provided for backward compatiblity' box='"+
-                        s.bounds.min.lat()+","+
-                        s.bounds.min.lon()+","+
-                        s.bounds.max.lat()+","+
-                        s.bounds.max.lon()+"' ");
                 out.println("origin='"+XmlWriter.encode(s.origin)+"' />");
                 out.print("  <bounds minlat='" +
