Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 4511)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 4512)
@@ -461,4 +461,14 @@
         }
         updateSystemProperties();
+        /* FIXME: TODO: remove special version check end of 2012 */
+        if(!properties.containsKey("expert")) {
+            try {
+                String v = get("josm.version");
+                if(v.isEmpty() || Integer.parseInt(v) <= 4511)
+                    properties.put("expert", "true");
+            } catch(Exception e) {
+                properties.put("expert", "true");
+            }
+        }
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 4511)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 4512)
@@ -680,5 +680,5 @@
                 buttonsPanel.add(button);
             add(buttonsPanel, BorderLayout.SOUTH);
-            if(Main.pref.getBoolean("dialog.dynamic.buttons", false)) {
+            if(Main.pref.getBoolean("dialog.dynamic.buttons", true)) {
                 Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.MOUSE_MOTION_EVENT_MASK);
                 buttonsPanel.setVisible(false);
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 4511)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/LafPreference.java	(revision 4512)
@@ -41,4 +41,6 @@
     private JCheckBox drawHelperLine = new JCheckBox(tr("Draw rubber-band helper line"));
     private JCheckBox modeless = new JCheckBox(tr("Modeless working (Potlatch style)"));
+    private JCheckBox expert = new JCheckBox(tr("Expert mode"));
+    private JCheckBox dynamicButtons = new JCheckBox(tr("Dynamic buttons in side menus"));
 
     public void addGui(PreferenceTabbedPane gui) {
@@ -81,21 +83,31 @@
         panel.add(showSplashScreen, GBC.eop().insets(20, 0, 0, 0));
 
-        // Show ID in selection
-        showID.setToolTipText(tr("Show object ID in selection lists"));
-        showID.setSelected(Main.pref.getBoolean("osm-primitives.showid", false));
-        panel.add(showID, GBC.eop().insets(20, 0, 0, 0));
+        if(Main.pref.getBoolean("expert", false)) {
+            // Show ID in selection
+            showID.setToolTipText(tr("Show object ID in selection lists"));
+            showID.setSelected(Main.pref.getBoolean("osm-primitives.showid", false));
+            panel.add(showID, GBC.eop().insets(20, 0, 0, 0));
 
-        // Show localized names
-        showLocalizedName.setToolTipText(tr("Show localized name in selection lists, if available"));
-        showLocalizedName.setSelected(Main.pref.getBoolean("osm-primitives.localize-name", true));
-        panel.add(showLocalizedName, GBC.eop().insets(20, 0, 0, 0));
+            // Show localized names
+            showLocalizedName.setToolTipText(tr("Show localized name in selection lists, if available"));
+            showLocalizedName.setSelected(Main.pref.getBoolean("osm-primitives.localize-name", true));
+            panel.add(showLocalizedName, GBC.eop().insets(20, 0, 0, 0));
 
-        drawHelperLine.setToolTipText(tr("Draw rubber-band helper line"));
-        drawHelperLine.setSelected(Main.pref.getBoolean("draw.helper-line", true));
-        panel.add(drawHelperLine, GBC.eop().insets(20, 0, 0, 0));
+            drawHelperLine.setToolTipText(tr("Draw rubber-band helper line"));
+            drawHelperLine.setSelected(Main.pref.getBoolean("draw.helper-line", true));
+            panel.add(drawHelperLine, GBC.eop().insets(20, 0, 0, 0));
 
-        modeless.setToolTipText(tr("Do not require to switch modes (potlatch style workflow)"));
-        modeless.setSelected(Main.pref.getBoolean("modeless", false));
-        panel.add(modeless, GBC.eop().insets(20, 0, 0, 0));
+            modeless.setToolTipText(tr("Do not require to switch modes (potlatch style workflow)"));
+            modeless.setSelected(Main.pref.getBoolean("modeless", false));
+            panel.add(modeless, GBC.eop().insets(20, 0, 0, 0));
+        }
+
+        dynamicButtons.setToolTipText(tr("Display buttons in right side menus only when mouse is inside the element"));
+        dynamicButtons.setSelected(Main.pref.getBoolean("dialog.dynamic.buttons", true));
+        panel.add(dynamicButtons, GBC.eop().insets(20, 0, 0, 0));
+
+        expert.setToolTipText(tr("The expert mode shows a lot of additional settings hidden from normal user"));
+        expert.setSelected(Main.pref.getBoolean("expert", false));
+        panel.add(expert, GBC.eop().insets(20, 0, 0, 0));
 
         panel.add(Box.createVerticalGlue(), GBC.eol().insets(0, 20, 0, 0));
@@ -111,4 +123,5 @@
 
     public boolean ok() {
+        boolean mod = false;
         Main.pref.put("draw.splashscreen", showSplashScreen.isSelected());
         Main.pref.put("osm-primitives.showid", showID.isSelected());
@@ -116,5 +129,10 @@
         Main.pref.put("draw.helper-line", drawHelperLine.isSelected());
         Main.pref.put("modeless", modeless.isSelected());
-        return Main.pref.put("laf", ((LookAndFeelInfo)lafCombo.getSelectedItem()).getClassName());
+        if(Main.pref.put("expert", expert.isSelected()))
+            mod = true;
+        Main.pref.put("dialog.dynamic.buttons", dynamicButtons.isSelected());
+        if(Main.pref.put("laf", ((LookAndFeelInfo)lafCombo.getSelectedItem()).getClassName()))
+            mod = true;
+        return mod;
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 4511)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/PreferenceTabbedPane.java	(revision 4512)
@@ -276,6 +276,8 @@
         PluginHandler.getPreferenceSetting(settingsFactory);
 
-        // always the last: advanced tab
-        settingsFactory.add(new AdvancedPreference.Factory());
+        if(Main.pref.getBoolean("expert", false)) {
+            // always the last: advanced tab
+            settingsFactory.add(new AdvancedPreference.Factory());
+        }
     }
 
