Index: /applications/editors/josm/plugins/scripting/scripts/AddHouseNumbers.groovy
===================================================================
--- /applications/editors/josm/plugins/scripting/scripts/AddHouseNumbers.groovy	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/scripts/AddHouseNumbers.groovy	(revision 25110)
@@ -1,8 +1,8 @@
+/*
+ * This scripts sets a sequence of consecutive house numbers on the currently selected nodes.
+ *  
+ */
+import java.awt.event.WindowAdapter;
 
-/*
- * This scripts sets a sequence of house numbers on the currently selected nodes.
- * 
- * The user can enter a start number and and an increment.
- */
 
 import java.awt.BorderLayout;
@@ -10,8 +10,12 @@
 
 import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowListener;
 
 import javax.swing.KeyStroke;
 
 import groovy.swing.SwingBuilder;
+import groovy.util.ProxyGenerator;
+
 import javax.swing.JOptionPane;
 import org.openstreetmap.josm.Main;
@@ -35,4 +39,5 @@
 import java.awt.GridBagLayout;
 import javax.swing.JLabel;
+import java.awt.event.FocusListener;
 
 import javax.swing.Action;
@@ -43,4 +48,6 @@
 import java.awt.event.ActionListener;
 import java.awt.Dimension;
+import java.awt.Dialog.ModalityType;
+import java.awt.event.WindowEvent;
 
 class AddHouseNumberDialog extends JDialog {
@@ -56,7 +63,8 @@
 	private JTextField tfStart;
 	private JTextField tfIncrement;
+	private def actApply;
 	
 	public AddHouseNumberDialog(){
-		super(Main.parent, true /* modal */)
+		super(Main.parent,true)
 		build();
 	}
@@ -95,5 +103,5 @@
 		SwingBuilder swing = new SwingBuilder()
 		return swing.panel(layout: new FlowLayout(FlowLayout.CENTER)) {
-		    def actApply = action(name: "Apply", smallIcon: ImageProvider.get("ok"), closure: {apply(); setVisible(false)})
+		    actApply = action(name: "Apply", smallIcon: ImageProvider.get("ok"), closure: {apply(); setVisible(false)})
 			def btnApply = button(action: actApply)
 			btnApply.setFocusable(true)
@@ -114,5 +122,7 @@
 			return
 		}
-		def cmds = getCurrentlySelectedNodes().collect { Node n ->
+		def nodes = Main?.map?.mapView?.editLayer?.data?.getSelectedNodes()?.asList()
+		if (nodes == null || nodes.isEmpty()) return
+		def cmds = nodes.collect { Node n ->
 			Node nn = new Node(n)
 			nn.put("addr:housenumber", start.toString())
@@ -120,5 +130,4 @@
 			return new ChangeCommand(n, nn)			
 		}
-		if (cmds.isEmpty()) return
 		Main.main.undoRedo.add(new SequenceCommand("Setting house numbers", cmds))
 	}
@@ -131,18 +140,8 @@
 		cp.add(buildInputPanel(), BorderLayout.CENTER)
 		cp.add(buildControlButtonPanel(), BorderLayout.SOUTH)
-	}	
-	
-	def getCurrentDataSet() {
-		def layer = Main?.map?.mapView?.activeLayer
-		if (layer == null) return null
-		if (! (layer instanceof OsmDataLayer)) return null
-		return layer.data
-	}
-	
-	def getCurrentlySelectedNodes() {
-		def DataSet ds = getCurrentDataSet()
-		if (ds == null) return []
-		return ds.getSelectedNodes().asList()
-	}
+		
+		addWindowListener([windowActivated: {tfStart.requestFocusInWindow()}] as WindowAdapter) 
+		getRootPane().registerKeyboardAction(actApply, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,KeyEvent.CTRL_MASK, false), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
+	}		
 
 	@Override
Index: plications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/HelpAwareOptionPane.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/HelpAwareOptionPane.java	(revision 25109)
+++ 	(revision )
@@ -1,281 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.plugins.scripting;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import java.awt.Component;
-import java.awt.Dialog.ModalityType;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyEvent;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.AbstractAction;
-import javax.swing.Action;
-import javax.swing.Icon;
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JOptionPane;
-import javax.swing.KeyStroke;
-import javax.swing.SwingUtilities;
-
-import org.openstreetmap.josm.gui.help.HelpBrowser;
-import org.openstreetmap.josm.gui.help.HelpUtil;
-import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.WindowGeometry;
-
-// FIXME: copied from the JOSM source tree. After migration to Java6 somebody added
-// ModalityType.DOCUMENT_MODAL when the option pane dialog is launched, but this leads
-// to problems when an option pane dialog is launched from a modal JDialog. 
-// 
-// This cloned source class just replaces ModalityType.DOCUMENT_MODAL with 
-// ModalityType.APPLICATION_MODAL. If this gets fixed later in the JOSM core, this
-// class be removed. 
-//
-
-public class HelpAwareOptionPane {
-
-    public static class ButtonSpec {
-        public String text;
-        public Icon icon;
-        public String tooltipText;
-        public String helpTopic;
-
-        /**
-         *
-         * @param text  the button text
-         * @param icon  the icon to display. Can be null
-         * @param tooltipText  the tooltip text. Can be null.
-         * @param helpTopic the help topic. Can be null.
-         */
-        public ButtonSpec(String text, Icon icon, String tooltipText, String helpTopic) {
-            this.text = text;
-            this.icon = icon;
-            this.tooltipText = tooltipText;
-            this.helpTopic = helpTopic;
-        }
-    }
-
-    static private class DefaultAction extends AbstractAction {
-        private JDialog dialog;
-        private JOptionPane pane;
-        private int value;
-
-        public DefaultAction(JDialog dialog, JOptionPane pane, int value) {
-            this.dialog = dialog;
-            this.pane = pane;
-            this.value = value;
-        }
-
-        public void actionPerformed(ActionEvent e) {
-            pane.setValue(value);
-            dialog.setVisible(false);
-        }
-    }
-
-    /**
-     * Creates the list buttons to be displayed in the option pane dialog.
-     *
-     * @param options the option. If null, just creates an OK button and a help button
-     * @param helpTopic the help topic. The context sensitive help of all buttons is equal
-     * to the context sensitive help of the whole dialog
-     * @return the list of buttons
-     */
-    static private List<JButton> createOptionButtons(ButtonSpec[] options, String helpTopic) {
-        List<JButton> buttons = new ArrayList<JButton>();
-        if (options == null) {
-            JButton b = new JButton(tr("OK"));
-            b.setIcon(ImageProvider.get("ok"));
-            b.setToolTipText(tr("Click to close the dialog"));
-            b.setFocusable(true);
-            buttons.add(b);
-        } else {
-            for (ButtonSpec spec: options) {
-                JButton b = new JButton(spec.text);
-                b.setIcon(spec.icon);
-                b.setToolTipText(spec.tooltipText == null? "" : spec.tooltipText);
-                if (helpTopic != null) {
-                    HelpUtil.setHelpContext(b, helpTopic);
-                }
-                b.setFocusable(true);
-                buttons.add(b);
-            }
-        }
-        return buttons;
-    }
-
-    /**
-     * Creates the help button
-     *
-     * @param helpTopic the help topic
-     * @return the help button
-     */
-    static private JButton createHelpButton(final String helpTopic) {
-        JButton b = new JButton(tr("Help"));
-        b.setIcon(ImageProvider.get("help"));
-        b.setToolTipText(tr("Show help information"));
-        HelpUtil.setHelpContext(b, helpTopic);
-        Action a = new AbstractAction() {
-            public void actionPerformed(ActionEvent e) {
-                HelpBrowser.setUrlForHelpTopic(helpTopic);
-            }
-        };
-        b.addActionListener(a);
-        b.getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-        b.getActionMap().put("enter", a);
-        return b;
-    }
-
-    /**
-     * Displays an option dialog which is aware of a help context. If <code>helpTopic</code> isn't null,
-     * the dialog includes a "Help" button and launches the help browser if the user presses F1. If the
-     * user clicks on the "Help" button the option dialog remains open and JOSM launches the help
-     * browser.
-     *
-     * <code>helpTopic</code> is the trailing part of a JOSM online help URL, i.e. the part after the leading
-     * <code>http://josm.openstreetmap.de/wiki/Help</code>. It should start with a leading '/' and it
-     * may include an anchor after a '#'.
-     *
-     * <strong>Examples</strong>
-     * <ul>
-     *    <li>/Dialogs/RelationEditor</li>
-     *    <li>/Dialogs/RelationEditor#ConflictInData</li>
-     * </ul>
-     *
-     * In addition, the option buttons display JOSM icons, similar to ExtendedDialog.
-     *
-     * @param parentComponent the parent component
-     * @param msg the message
-     * @param title the title
-     * @param messageType the message type (see {@see JOptionPane})
-     * @param icon the icon to display. Can be null.
-     * @param options the list of options to display. Can be null.
-     * @param defaultOption the default option. Can be null.
-     * @param helpTopic the help topic. Can be null.
-     * @return the index of the selected option or {@link JOptionPane#CLOSED_OPTION}
-     */
-    static public int showOptionDialog(Component parentComponent, Object msg, String title, int messageType, Icon icon, final ButtonSpec[] options, final ButtonSpec defaultOption, final String helpTopic)  {
-        final List<JButton> buttons = createOptionButtons(options, helpTopic);
-        if (helpTopic != null) {
-            buttons.add(createHelpButton(helpTopic));
-        }
-
-        JButton defaultButton = null;
-        if (options != null && defaultOption != null) {
-            for (int i=0; i< options.length; i++) {
-                if (options[i] == defaultOption) {
-                    defaultButton = buttons.get(i);
-                    break;
-                }
-            }
-        }
-
-        if (msg instanceof String) {
-            msg = new JLabel((String)msg);
-        }
-
-        final JOptionPane pane = new JOptionPane(
-                msg,
-                messageType,
-                JOptionPane.DEFAULT_OPTION,
-                icon,
-                buttons.toArray(),
-                defaultButton
-        );
-
-        pane.getValue();
-        final JDialog dialog = new JDialog(
-                JOptionPane.getFrameForComponent(parentComponent),
-                title,
-                ModalityType.APPLICATION_MODAL
-        );
-        dialog.setContentPane(pane);
-        dialog.addWindowListener(new WindowAdapter() {
-            @Override
-            public void windowClosing(WindowEvent e) {
-                pane.setValue(JOptionPane.CLOSED_OPTION);
-                super.windowClosed(e);
-            }
-
-            @Override
-            public void windowOpened(WindowEvent e) {
-                if (defaultOption != null && options != null && options.length > 0) {
-                    int i;
-                    for (i=0; i<options.length;i++) {
-                        if (options[i] == defaultOption) {
-                            break;
-                        }
-                    }
-                    if (i >= options.length) {
-                        buttons.get(0).requestFocusInWindow();
-                    }
-                    buttons.get(i).requestFocusInWindow();
-                } else {
-                    buttons.get(0).requestFocusInWindow();
-                }
-            }
-        });
-        dialog.getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE,0), "close");
-        dialog.getRootPane().getActionMap().put("close", new AbstractAction() {
-            public void actionPerformed(ActionEvent e) {
-                pane.setValue(JOptionPane.CLOSED_OPTION);
-                dialog.setVisible(false);
-            }}
-        );
-
-        if (options != null) {
-            for (int i=0; i < options.length;i++) {
-                final DefaultAction action = new DefaultAction(dialog, pane, i);
-                buttons.get(i).addActionListener(action);
-                buttons.get(i).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-                buttons.get(i).getActionMap().put("enter", action);
-            }
-        } else {
-            final DefaultAction action = new DefaultAction(dialog, pane, 0);
-            buttons.get(0).addActionListener(action);
-            buttons.get(0).getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), "enter");
-            buttons.get(0).getActionMap().put("enter", action);
-        }
-
-        dialog.pack();
-        WindowGeometry.centerOnScreen(dialog.getSize()).applySafe(dialog);
-        if (helpTopic != null) {
-            HelpUtil.setHelpContext(dialog.getRootPane(), helpTopic);
-        }
-        dialog.setVisible(true);
-        return (Integer)pane.getValue();
-    }
-
-    /**
-     *
-     * @param parentComponent
-     * @param msg
-     * @param title
-     * @param messageType
-     * @param helpTopic
-     * @return
-     * @see #showOptionDialog(Component, Object, String, int, Icon, ButtonSpec[], ButtonSpec, String)
-     */
-    static public int showOptionDialog(Component parentComponent, Object msg, String title, int messageType,final String helpTopic)  {
-        return showOptionDialog(parentComponent, msg, title, messageType, null,null,null, helpTopic);
-    }
-
-    /**
-     * Run it in Event Dispatch Thread.
-     * This version does not return anything, so it is more like showMessageDialog.
-     *
-     * It can be used, when you need to show a message dialog from a worker thread,
-     * e.g. from PleaseWaitRunnable
-     */
-    static public void showMessageDialogInEDT(final Component parentComponent, final Object msg, final String title, final int messageType, final String helpTopic)  {
-        SwingUtilities.invokeLater(new Runnable() {
-            public void run() {
-                showOptionDialog(parentComponent, msg, title, messageType, null, null, null, helpTopic);
-            }
-        });
-    }
-}
Index: /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptAction.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptAction.java	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptAction.java	(revision 25110)
@@ -4,6 +4,9 @@
 import java.awt.event.KeyEvent;
 
+import javax.swing.KeyStroke;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -20,4 +23,5 @@
 		);		
 		putValue(MNEMONIC_KEY, KeyEvent.VK_R);
+		putValue("help", HelpUtil.ht("/Plugin/Scripting"));
 	}
 
Index: /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptDialog.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptDialog.java	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/RunScriptDialog.java	(revision 25110)
@@ -11,4 +11,6 @@
 import java.awt.Insets;
 import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
 import java.io.File;
 import java.io.FileReader;
@@ -24,5 +26,7 @@
 import javax.script.ScriptException;
 import javax.swing.AbstractAction;
+import javax.swing.Action;
 import javax.swing.JButton;
+import javax.swing.JComponent;
 import javax.swing.JDialog;
 import javax.swing.JFileChooser;
@@ -31,7 +35,9 @@
 import javax.swing.JPanel;
 import javax.swing.JTextField;
+import javax.swing.KeyStroke;
 import javax.swing.SwingUtilities;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.HelpAwareOptionPane;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.help.ContextSensitiveHelpAction;
@@ -41,4 +47,5 @@
 import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
 import org.openstreetmap.josm.plugins.scripting.preferences.PreferenceKeys;
+import org.openstreetmap.josm.plugins.scripting.util.IOUtil;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.WindowGeometry;
@@ -53,4 +60,5 @@
 	/** the input field for the script file name */
 	private HistoryComboBox cbScriptFile;
+	private Action actRun;
 	
 	/**
@@ -60,6 +68,7 @@
 	 */
 	public RunScriptDialog(Component parent) {
-		super(JOptionPane.getFrameForComponent(parent), true);
+		super(JOptionPane.getFrameForComponent(parent), ModalityType.DOCUMENT_MODAL);
 		build();
+		HelpUtil.setHelpContext(this.getRootPane(), HelpUtil.ht("/Plugin/Scripting"));
 	}
 	
@@ -78,7 +87,11 @@
 	protected JPanel buildControlButtonPanel() {
 		JPanel pnl = new JPanel(new FlowLayout(FlowLayout.CENTER));
-		pnl.add(new SideButton(new RunAction()));
+		JButton btn;
+		
+		pnl.add(btn = new SideButton(actRun = new RunAction()));
+		btn.setFocusable(true);
+		btn.registerKeyboardAction(actRun, KeyStroke.getKeyStroke("ENTER"), JComponent.WHEN_FOCUSED);
 		pnl.add(new SideButton(new CancelAction()));
-		pnl.add(new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Macro#Run"))));
+		pnl.add(new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Scripting#Run"))));
 		return pnl;
 	}
@@ -108,5 +121,7 @@
 		gc.fill = GridBagConstraints.BOTH;
 		gc.insets = new Insets(3,0 /* no spacing to the left */,3,3);
-		pnl.add(new JButton(new SelectMacroFileAction()), gc);
+		JButton btn;
+		pnl.add(btn = new JButton(new SelectMacroFileAction()), gc);
+		btn.setFocusable(false);
 				
 		// just a filler 
@@ -135,6 +150,14 @@
 		getContentPane().add(buildContentPanel(), BorderLayout.CENTER);
 		
+		getRootPane().registerKeyboardAction(actRun, KeyStroke.getKeyStroke("ctrl ENTER"), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
 		setTitle(tr("Run a script"));
 		setSize(600, 150);
+		
+		addWindowListener(new WindowAdapter() {
+			@Override
+			public void windowActivated(WindowEvent e) {
+				cbScriptFile.requestFocusInWindow();
+			}			
+		});
 	}
 	
@@ -194,5 +217,5 @@
 					tr("File not found"),
 					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					HelpUtil.ht("/Plugin/Scripting")
 			);			
 		}
@@ -204,5 +227,5 @@
 					tr("Empty file name"),
 					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					HelpUtil.ht("/Plugin/Scripting")
 			);			
 		}
@@ -214,5 +237,5 @@
 					tr("File not readable"),
 					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					HelpUtil.ht("/Plugin/Scripting")
 			);			
 		}
@@ -224,5 +247,5 @@
 					tr("IO error"),
 					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					HelpUtil.ht("/Plugin/Scripting")
 			);			
 			System.out.println(tr("Failed to read a macro from the file ''{0}''.", f.toString()));
@@ -236,5 +259,5 @@
 					tr("Script Error"),
 					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					HelpUtil.ht("/Plugin/Scripting")
 			);			
 			System.out.println(tr("Macro execution has failed."));
@@ -252,7 +275,7 @@
 					+ "</html>"
 					,
-					tr("No scripting engine"),
-					JOptionPane.ERROR_MESSAGE,
-					null // no help topic
+					tr("No script engine"),
+					JOptionPane.ERROR_MESSAGE,
+					HelpUtil.ht("/Plugin/Scripting")
 			);
 		}
@@ -292,5 +315,6 @@
 			final ScriptEngine engine = getScriptEngine(f);
 			if (engine == null) return;
-		
+			setVisible(false);		
+
 			SwingUtilities.invokeLater(
 			    new Runnable() {
@@ -300,5 +324,4 @@
 							if (engine instanceof Compilable) {
 								CompiledScript script = CompiledScriptCache.getInstance().compile((Compilable)engine,f);
-								logger.info("running compiled script for " + f);
 								script.eval();
 							} else {
@@ -311,13 +334,9 @@
 							warnFailedToOpenMacroFile(f, e);
 						} finally {
-							if (reader != null){
-								try {reader.close();} catch(IOException e) {}
-							}
+							IOUtil.close(reader);
 						}
 			    	}
 			    }
-		    );
-			
-			setVisible(false);		
+		    );		
 		}	
 	}
Index: /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/ScriptEngineSelectionDialog.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/ScriptEngineSelectionDialog.java	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/ScriptEngineSelectionDialog.java	(revision 25110)
@@ -82,6 +82,7 @@
 	 */
 	public ScriptEngineSelectionDialog(Component parent) {
-		super(JOptionPane.getFrameForComponent(parent), true /* modal */);
+		super(JOptionPane.getFrameForComponent(parent), ModalityType.APPLICATION_MODAL);
 		build();
+		HelpUtil.setHelpContext(getRootPane(), HelpUtil.ht("/Plugin/Scripting"));
 	}
 	
@@ -107,5 +108,5 @@
 		pnl.add(btn = new SideButton(actCancel = new CancelAction()));
 		btn.setFocusable(true);
-		pnl.add(btn = new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugins/Scripting#SelectScriptingEngine"))));
+		pnl.add(btn = new SideButton(new ContextSensitiveHelpAction(HelpUtil.ht("/Plugin/Scripting"))));
 		btn.setFocusable(true);
 		
@@ -113,5 +114,5 @@
 		getRootPane().registerKeyboardAction(
 				actOK,  
-				KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, InputEvent.CTRL_DOWN_MASK), 
+				KeyStroke.getKeyStroke("ctrl ENTER"), 
 				JComponent.WHEN_IN_FOCUSED_WINDOW
 		);
@@ -120,5 +121,5 @@
 		getRootPane().registerKeyboardAction(
 				actCancel,  
-				KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), 
+				KeyStroke.getKeyStroke("ESC"), 
 				JComponent.WHEN_IN_FOCUSED_WINDOW
 		);
Index: /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/ConfigureAction.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/ConfigureAction.java	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/ConfigureAction.java	(revision 25110)
@@ -12,4 +12,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.preferences.PreferenceDialog;
 import org.openstreetmap.josm.plugins.scripting.RunScriptDialog;
@@ -24,4 +25,5 @@
 			false                // don't register
 		);		
+		putValue("help", HelpUtil.ht("/Plugin/Scripting"));
 	}
 	
@@ -62,5 +64,5 @@
 			 */
 			for(int i=0; i< tp.getTabCount(); i++) {
-				if (getChildByName(tp.getComponentAt(i), "scripting.preferences.editor") != null) {
+				if (getChildByName(tp.getComponentAt(i), PreferenceEditor.NAME) != null) {
 					tp.setSelectedIndex(i);
 					break;
Index: /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/PreferenceEditor.java
===================================================================
--- /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/PreferenceEditor.java	(revision 25109)
+++ /applications/editors/josm/plugins/scripting/src/org/openstreetmap/josm/plugins/scripting/preferences/PreferenceEditor.java	(revision 25110)
@@ -13,4 +13,5 @@
 
 public class PreferenceEditor extends JPanel implements PreferenceSetting {
+	static public final String NAME = "scripting.preferences.editor";
 	
 	private JTabbedPane tpPreferenceTabs;
@@ -34,5 +35,5 @@
         JPanel tab = gui.createPreferenceTab("script-engine", tr("Scripting"), description);        
         tab.add(this, GBC.eol().fill(GBC.BOTH));
-        this.setName("scripting.preferences.editor");
+        this.setName(NAME);
 	}
 
