Index: trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 12131)
+++ trunk/src/org/openstreetmap/josm/actions/DialogsToggleAction.java	(revision 12132)
@@ -18,4 +18,7 @@
 */
 public class DialogsToggleAction extends ToggleAction {
+
+    private boolean toolbarPreviouslyVisible;
+    private boolean sideToolbarPreviouslyVisible;
 
     /**
@@ -46,12 +49,16 @@
         if (Main.isDisplayingMapView()) {
             boolean selected = isSelected();
+            if (!selected) {
+                toolbarPreviouslyVisible = Main.pref.getBoolean("toolbar.visible", true);
+                sideToolbarPreviouslyVisible = Main.pref.getBoolean("sidetoolbar.visible", true);
+            }
             Main.map.setDialogsPanelVisible(selected);
             Main.map.statusLine.setVisible(selected || Main.pref.getBoolean("statusbar.always-visible", true));
             Main.main.menu.setVisible(selected || Main.pref.getBoolean("menu.always-visible", true));
             // Toolbars listen to preference changes, use it here
-            if (!Main.pref.getBoolean("toolbar.always-visible", true)) {
+            if (!Main.pref.getBoolean("toolbar.always-visible", true) && (!selected || toolbarPreviouslyVisible)) {
                 Main.pref.put("toolbar.visible", selected);
             }
-            if (!Main.pref.getBoolean("sidetoolbar.always-visible", true)) {
+            if (!Main.pref.getBoolean("sidetoolbar.always-visible", true) && (!selected || sideToolbarPreviouslyVisible)) {
                 Main.pref.put("sidetoolbar.visible", selected);
             }
