Index: trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 6728)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/SourceEditor.java	(revision 6729)
@@ -67,4 +67,6 @@
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -702,7 +704,5 @@
 
         public EditSourceEntryDialog(Component parent, String title, SourceEntry e) {
-            super(parent,
-                    title,
-                    new String[] {tr("Ok"), tr("Cancel")});
+            super(parent, title, new String[] {tr("Ok"), tr("Cancel")});
 
             JPanel p = new JPanel(new GridBagLayout());
@@ -718,5 +718,5 @@
             fileChooser.setMargin(new Insets(0, 0, 0, 0));
             p.add(fileChooser, GBC.eol().insets(0, 0, 5, 5));
-
+            
             if (e != null) {
                 if (e.title != null) {
@@ -732,4 +732,30 @@
             setButtonIcons(new String[] {"ok", "cancel"});
             setContent(p);
+
+            // Make OK button enabled only when a file/URL has been set
+            tfURL.getDocument().addDocumentListener(new DocumentListener() {
+                @Override
+                public void insertUpdate(DocumentEvent e) {
+                    updateOkButtonState();
+                }
+                @Override
+                public void removeUpdate(DocumentEvent e) {
+                    updateOkButtonState();
+                }
+                @Override
+                public void changedUpdate(DocumentEvent e) {
+                    updateOkButtonState();
+                }
+            });
+        }
+
+        private void updateOkButtonState() {
+            buttons.get(0).setEnabled(!Utils.strip(tfURL.getText()).isEmpty());
+        }
+
+        @Override
+        public void setupDialog() {
+            super.setupDialog();
+            updateOkButtonState();
         }
 
