Index: trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 9720)
+++ trunk/src/org/openstreetmap/josm/actions/SaveActionBase.java	(revision 9721)
@@ -198,5 +198,5 @@
             // No filefilter accepts current filename, add default extension
             String fn = file.getPath();
-            if (extension != null) {
+            if (extension != null && ff.accept(new File(fn + '.' + extension))) {
                 fn += '.' + extension;
             } else if (ff instanceof ExtensionFileFilter) {
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 9720)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 9721)
@@ -76,4 +76,5 @@
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.data.preferences.StringProperty;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.data.validation.TestError;
@@ -128,4 +129,6 @@
     public static final IntegerProperty PROPERTY_RECENT_RELATIONS_NUMBER = new IntegerProperty("properties.last-closed-relations-size",
             DEFAULT_RECENT_RELATIONS_NUMBER);
+    public static final StringProperty PROPERTY_SAVE_EXTENSION = new StringProperty("save.extension.osm", "osm");
+
 
     /** List of recent relations */
@@ -1007,5 +1010,5 @@
     @Override
     public File createAndOpenSaveFileChooser() {
-        String extension = Main.pref.get("save.extension.osm", "osm");
+        String extension = PROPERTY_SAVE_EXTENSION.get();
         File file = getAssociatedFile();
         if (file == null && isRenamed()) {
