Index: applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGuiPlugin.java
===================================================================
--- applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGuiPlugin.java	(revision 17532)
+++ applications/editors/josm/plugins/DirectUpload/src/org/openstreetmap/josm/plugins/DirectUpload/UploadDataGuiPlugin.java	(revision 19082)
@@ -11,7 +11,9 @@
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
-import org.openstreetmap.josm.gui.MapFrame;
+import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -29,6 +31,5 @@
     }
 
-    class UploadAction extends JosmAction {
-
+    class UploadAction extends JosmAction{
         public UploadAction(){
             super(tr("Upload Traces"), "UploadAction", tr("Uploads traces to openstreetmap.org"),
@@ -40,4 +41,17 @@
             go.setVisible(true);
         }
+
+        @Override
+		protected void updateEnabledState() {
+            if(Main.map == null
+                    || Main.map.mapView == null
+                    || Main.map.mapView.getActiveLayer() == null
+                    || !(Main.map.mapView.getActiveLayer() instanceof GpxLayer)) {                
+                setEnabled(false);
+            } else {
+            	setEnabled(true);
+            }
+
+		}		
     }
 }
