Index: /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(revision 3284)
+++ /trunk/src/org/openstreetmap/josm/actions/DownloadPrimitiveAction.java	(revision 3285)
@@ -12,4 +12,5 @@
 import javax.swing.JCheckBox;
 import javax.swing.JLabel;
+import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.KeyStroke;
@@ -86,9 +87,20 @@
         dialog.setDefaultButton(1);
         dialog.configureContextsensitiveHelp("/Action/DownloadObject", true /* show help button */);
+        cbType.setSelectedIndex(Main.pref.getInteger("downloadprimitive.lasttype", 0));
         dialog.showDialog();
         if (dialog.getValue() != 1) return;
+        Main.pref.putInteger("downloadprimitive.lasttype", cbType.getSelectedIndex());
         Main.pref.put("downloadprimitive.referrers", referrers.isSelected());
         Main.pref.put("download.newlayer", layer.isSelected());
-        download(layer.isSelected(), cbType.getType(), tfId.getOsmId(), referrers.isSelected());
+        int id = tfId.getOsmId();
+        if(id <= 0)
+            JOptionPane.showMessageDialog(
+                    Main.parent,
+                    tr("Invalid ID specified. Cannot download object."),
+                    tr("Information"),
+                    JOptionPane.INFORMATION_MESSAGE
+            );
+        else
+            download(layer.isSelected(), cbType.getType(), id, referrers.isSelected());
     }
 
