Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddImageryDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddImageryDialog.java	(revision 13773)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddImageryDialog.java	(revision 13774)
@@ -7,6 +7,8 @@
 import java.awt.Dimension;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.preferences.imagery.AddImageryPanel.ContentValidationListener;
+import org.openstreetmap.josm.gui.util.WindowGeometry;
 
 /**
@@ -15,4 +17,6 @@
  */
 public class AddImageryDialog extends ExtendedDialog implements ContentValidationListener {
+
+    private final String saveGeometryEntryName;
 
     /**
@@ -29,4 +33,5 @@
         setMinimumSize(new Dimension(300, 400));
         panel.addContentValidationListener(this);
+        this.saveGeometryEntryName = panel.getClass().getName() + ".geometry";
     }
 
@@ -41,3 +46,14 @@
         buttons.get(0).setEnabled(isValid);
     }
+
+    @Override
+    public void setVisible(boolean visible) {
+        if (visible) {
+            new WindowGeometry(saveGeometryEntryName, WindowGeometry.centerInWindow(Main.parent,
+                    new Dimension(800, 600))).applySafe(this);
+        } else if (isShowing()) { // Avoid IllegalComponentStateException like in #8775
+            new WindowGeometry(this).remember(saveGeometryEntryName);
+        }
+        super.setVisible(visible);
+    }
 }
