diff --git a/src/org/openstreetmap/josm/actions/OpenFileAction.java b/src/org/openstreetmap/josm/actions/OpenFileAction.java
index 079cd8af3a..32127a54e6 100644
--- a/src/org/openstreetmap/josm/actions/OpenFileAction.java
+++ b/src/org/openstreetmap/josm/actions/OpenFileAction.java
@@ -44,6 +44,8 @@ import org.openstreetmap.josm.gui.io.importexport.FileImporter;
 import org.openstreetmap.josm.gui.io.importexport.Options;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.AbstractFileChooser;
+import org.openstreetmap.josm.gui.widgets.FileChooserManager;
+import org.openstreetmap.josm.gui.widgets.NativeFileChooser;
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.tools.Logging;
@@ -78,8 +80,17 @@ public class OpenFileAction extends DiskAccessAction {
 
     @Override
     public void actionPerformed(ActionEvent e) {
-        AbstractFileChooser fc = createAndOpenFileChooser(true, true, null, null, JFileChooser.FILES_AND_DIRECTORIES,
-                true, null);
+        final AbstractFileChooser fc;
+        // If the user explicitly wants native file dialogs, let them use it.
+        // Rather unfortunately, this means that they will not be able to select files and directories.
+        if (Boolean.TRUE.equals(FileChooserManager.PROP_USE_NATIVE_FILE_DIALOG.get())
+                // This is almost redundant, as the JDK currently doesn't support this with (all?) native file choosers.
+                && !NativeFileChooser.supportsSelectionMode(JFileChooser.FILES_AND_DIRECTORIES)) {
+            fc = createAndOpenFileChooser(true, true, null);
+        } else {
+            fc = createAndOpenFileChooser(true, true, null, null,
+                    JFileChooser.FILES_AND_DIRECTORIES, true, null);
+        }
         if (fc == null)
             return;
         File[] files = fc.getSelectedFiles();
