Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java	(revision 3199)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationDialogManager.java	(revision 3200)
@@ -233,6 +233,8 @@
      * upper left corner is close to <code>p</code>.
      */
-    protected boolean hasEditorWithCloseUpperLeftCorner(Point p) {
+    protected boolean hasEditorWithCloseUpperLeftCorner(Point p, RelationEditor thisEditor) {
         for (RelationEditor editor: openDialogs.values()) {
+            if (editor == thisEditor)
+                continue;
             Point corner = editor.getLocation();
             if (p.x >= corner.x -5 && corner.x + 5 >= p.x
@@ -255,5 +257,5 @@
         if (!openDialogs.isEmpty()) {
             Point corner = editor.getLocation();
-            while(hasEditorWithCloseUpperLeftCorner(corner)) {
+            while(hasEditorWithCloseUpperLeftCorner(corner, editor)) {
                 // shift a little, so that the dialogs are not exactly on top of each other
                 corner.x += 20;
Index: trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 3199)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/ToolbarPreferences.java	(revision 3200)
@@ -685,5 +685,9 @@
 
     private static Collection<String> getToolString() {
-        return Main.pref.getCollection("toolbar", Arrays.asList(deftoolbar));
+        Collection<String> toolStr = Main.pref.getCollection("toolbar", Arrays.asList(deftoolbar));
+        if (toolStr == null || toolStr.size() == 0) {
+            toolStr = Arrays.asList(deftoolbar);
+        }
+        return toolStr;
     }
 
