Index: trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 4275)
+++ trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 4276)
@@ -1407,5 +1407,13 @@
         @Override
         public void actionPerformed(ActionEvent e) {
-            GPXSettingsPanel panel=new GPXSettingsPanel(getName());
+            boolean hasLocal = false, hasNonlocal = false;
+            for (Layer layer : layers) {
+                if (layer instanceof GpxLayer) {
+                    if (((GpxLayer) layer).isLocalFile) hasLocal = true;
+                    else hasNonlocal = true;
+                }
+            }
+            GPXSettingsPanel panel=new GPXSettingsPanel(getName(), hasLocal, hasNonlocal); 
+
             int answer = JOptionPane.showConfirmDialog(Main.parent, panel,
                     tr("Customize track drawing"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
@@ -1413,5 +1421,7 @@
             for(Layer layer : layers) {
                 // save preferences for all layers
-                panel.savePreferences(layer.getName());
+                boolean f=false; 
+                if (layer instanceof GpxLayer) f=((GpxLayer)layer).isLocalFile;
+                    panel.savePreferences(layer.getName(),f);
             }
             Main.map.repaint();
@@ -1419,5 +1429,5 @@
     }
 
-      private class MarkersFromNamedPoins extends AbstractAction {
+    private class MarkersFromNamedPoins extends AbstractAction {
 
         public MarkersFromNamedPoins() {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/GPXSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/GPXSettingsPanel.java	(revision 4275)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/GPXSettingsPanel.java	(revision 4276)
@@ -49,7 +49,10 @@
             /* gpx data field name */ trc("gpx_field", "Desc(ription)"), tr("Both"), tr("None")});
     private String layerName;
-
-    public GPXSettingsPanel(String layerName) {
+    private boolean local; // flag to display LocalOnly checkbox 
+    private boolean nonlocal; // flag to display AllLines checkbox 
+
+    public GPXSettingsPanel(String layerName, boolean local, boolean nonlocal) {
         super(new GridBagLayout());
+        this.local=local; this.nonlocal=nonlocal;
         this.layerName = "layer "+layerName;
         initComponents();
@@ -60,6 +63,8 @@
         super(new GridBagLayout());
         initComponents();
+        local=false; nonlocal=false;
         loadPreferences(); // preferences -> controls
     }
+
     private void initComponents() {
         setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
@@ -81,6 +86,6 @@
         if (layerName!=null) add(drawRawGpsLinesGlobal, GBC.eol().insets(40,0,0,0));
         add(drawRawGpsLinesNone, GBC.eol().insets(40,0,0,0));
-        add(drawRawGpsLinesLocal, GBC.eol().insets(40,0,0,0));
-        add(drawRawGpsLinesAll, GBC.eol().insets(40,0,0,0));
+        if (layerName==null || local) add(drawRawGpsLinesLocal, GBC.eol().insets(40,0,0,0)); 
+        if (layerName==null || nonlocal) add(drawRawGpsLinesAll, GBC.eol().insets(40,0,0,0)); 
 
         drawRawGpsLinesActionListener = new ActionListener(){
@@ -201,5 +206,5 @@
         makeAutoMarkers.setSelected(Main.pref.getBoolean("marker.makeautomarkers", true));
         if(layerName!=null && !Main.pref.hasKey("draw.rawgps.lines."+layerName)
-                && !Main.pref.hasKey("draw.rawgps.lines.local"+layerName)){
+                && !Main.pref.hasKey("draw.rawgps.lines.local."+layerName)){
             // no line preferences for layer is found
             drawRawGpsLinesGlobal.setSelected(true);
@@ -254,12 +259,13 @@
      * if layerName==null, global preferences are written
      */
-    public boolean savePreferences (String layerName) {
+    public boolean savePreferences (String layerName, boolean locLayer) {
         String layerNameDot = ".layer "+layerName;
+        if (layerName==null) layerNameDot="";
         Main.pref.put("marker.makeautomarkers"+layerNameDot, makeAutoMarkers.isSelected());
         if (drawRawGpsLinesGlobal.isSelected()) {
-            Main.pref.put("draw.rawgps.lines"+layerNameDot, null);
-            Main.pref.put("draw.rawgps.lines.local"+layerNameDot, null);
-            Main.pref.put("draw.rawgps.max-line-length"+layerNameDot, null);
-            Main.pref.put("draw.rawgps.max-line-length.local"+layerNameDot, null);
+            Main.pref.put("draw.rawgps.lines" + layerNameDot, null);
+            Main.pref.put("draw.rawgps.max-line-length" + layerNameDot, null);
+            Main.pref.put("draw.rawgps.lines.local" + layerNameDot, null);
+            Main.pref.put("draw.rawgps.max-line-length.local" + layerNameDot, null);
             Main.pref.put("draw.rawgps.lines.force"+layerNameDot, null);
             Main.pref.put("draw.rawgps.direction"+layerNameDot, null);
@@ -267,8 +273,12 @@
             Main.pref.put("draw.rawgps.min-arrow-distance"+layerNameDot, null);
         } else {
-            Main.pref.put("draw.rawgps.lines"+layerNameDot, drawRawGpsLinesAll.isSelected());
-            Main.pref.put("draw.rawgps.lines.local"+layerNameDot, drawRawGpsLinesAll.isSelected() || drawRawGpsLinesLocal.isSelected());
-            Main.pref.put("draw.rawgps.max-line-length"+layerNameDot, drawRawGpsMaxLineLength.getText());
-            Main.pref.put("draw.rawgps.max-line-length.local"+layerNameDot, drawRawGpsMaxLineLengthLocal.getText());
+            if (layerName==null || !locLayer) {
+                Main.pref.put("draw.rawgps.lines" +  layerNameDot, drawRawGpsLinesAll.isSelected());
+                Main.pref.put("draw.rawgps.max-line-length" + layerNameDot, drawRawGpsMaxLineLength.getText());
+            }
+            if (layerName==null || locLayer) {
+                Main.pref.put("draw.rawgps.lines.local" + layerNameDot, drawRawGpsLinesAll.isSelected() || drawRawGpsLinesLocal.isSelected());
+                Main.pref.put("draw.rawgps.max-line-length.local" + layerNameDot, drawRawGpsMaxLineLengthLocal.getText());
+            }
             Main.pref.put("draw.rawgps.lines.force"+layerNameDot, forceRawGpsLines.isSelected());
             Main.pref.put("draw.rawgps.direction"+layerNameDot, drawGpsArrows.isSelected());
@@ -308,5 +318,5 @@
      */
     public void savePreferences() {
-        savePreferences(null);
+        savePreferences(null, false);
     }
 }
