Index: menus/image-toolbar.xml
===================================================================
--- menus/image-toolbar.xml	(revision 0)
+++ menus/image-toolbar.xml	(revision 0)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE ui SYSTEM "gtkuimanager.dtd">
+
+<ui>
+  <toolbar action="image-toolbar">
+    <toolitem action="image-new" />
+    <toolitem action="file-open" />
+    <toolitem action="file-save" />
+    <separator />
+    <toolitem action="edit-undo" />
+    <toolitem action="edit-redo" />
+    <separator />
+    <toolitem action="edit-copy" />
+    <toolitem action="edit-cut" />
+    <toolitem action="edit-paste" />
+    <separator />
+    <toolitem action="view-zoom-out"/>
+    <toolitem action="view-zoom-in"/>
+    <toolitem action="view-zoom-1-1"/>
+    <toolitem action="view-zoom-fit-in"/>
+    <separator />
+    <toolitem action="select-all" />
+    <toolitem action="select-none" />
+    <toolitem action="select-invert" />
+    <toolitem action="quick-mask-toggle"/>
+    <separator />
+    <toolitem action="view-fullscreen"/>
+  </toolbar>
+</ui>
Index: menus/image-menu.xml.in
===================================================================
--- menus/image-menu.xml.in	(revision 25899)
+++ menus/image-menu.xml.in	(working copy)
@@ -283,6 +283,7 @@
         <menuitem action="view-padding-color-prefs" />
       </menu>
       <menuitem action="view-show-menubar" />
+      <menuitem action="view-show-toolbar" />
       <menuitem action="view-show-rulers" />
       <menuitem action="view-show-scrollbars" />
       <menuitem action="view-show-statusbar" />
Index: menus/Makefile.am
===================================================================
--- menus/Makefile.am	(revision 25899)
+++ menus/Makefile.am	(working copy)
@@ -22,6 +22,7 @@
 	gradient-editor-menu.xml	\
 	gradients-menu.xml		\
 	images-menu.xml			\
+	image-toolbar.xml		\
 	layers-menu.xml			\
 	palette-editor-menu.xml		\
 	palettes-menu.xml		\
Index: app/dialogs/preferences-dialog.c
===================================================================
--- app/dialogs/preferences-dialog.c	(revision 25899)
+++ app/dialogs/preferences-dialog.c	(working copy)
@@ -1282,6 +1282,9 @@
                           _("Show _menubar"),
                           GTK_BOX (checks_vbox));
 #endif /* !GDK_WINDOWING_QUARTZ */
+  prefs_check_button_add (object, "show-toolbar",
+                          _("Show t_oolbar"),
+                          GTK_BOX (checks_vbox));
   prefs_check_button_add (object, "show-rulers",
                           _("Show _rulers"),
                           GTK_BOX (checks_vbox));
Index: app/menus/menus.c
===================================================================
--- app/menus/menus.c	(revision 25899)
+++ app/menus/menus.c	(working copy)
@@ -117,6 +117,8 @@
                                       "image-menu.xml", image_menu_setup,
                                       "/quick-mask-popup",
                                       "quick-mask-menu.xml", NULL,
+                                      "/image-toolbar",
+                                      "image-toolbar.xml", NULL,
                                       NULL);
 
   gimp_menu_factory_manager_register (global_menu_factory, "<Toolbox>",
Index: app/actions/view-actions.c
===================================================================
--- app/actions/view-actions.c	(revision 25899)
+++ app/actions/view-actions.c	(working copy)
@@ -205,6 +205,13 @@
     TRUE,
     GIMP_HELP_VIEW_SHOW_MENUBAR },
 
+  { "view-show-toolbar", NULL,
+    N_("Show T_oolbar"), NULL,
+    N_("Show this window's toolbar"),
+    G_CALLBACK (view_toggle_toolbar_cmd_callback),
+    TRUE,
+    GIMP_HELP_VIEW_SHOW_TOOLBAR },
+
   { "view-show-rulers", NULL,
     N_("Show R_ulers"), "<control><shift>R",
     N_("Show this window's rulers"),
@@ -646,6 +653,8 @@
 
   SET_SENSITIVE ("view-show-menubar",    image);
   SET_ACTIVE    ("view-show-menubar",    display && options->show_menubar);
+  SET_SENSITIVE ("view-show-toolbar",    image);
+  SET_ACTIVE    ("view-show-toolbar",    display && options->show_toolbar);
   SET_SENSITIVE ("view-show-rulers",     image);
   SET_ACTIVE    ("view-show-rulers",     display && options->show_rulers);
   SET_SENSITIVE ("view-show-scrollbars", image);
Index: app/actions/view-commands.c
===================================================================
--- app/actions/view-commands.c	(revision 25899)
+++ app/actions/view-commands.c	(working copy)
@@ -380,6 +380,22 @@
 }
 
 void
+view_toggle_toolbar_cmd_callback (GtkAction *action,
+                                  gpointer   data)
+{
+  GimpDisplay      *display;
+  GimpDisplayShell *shell;
+  gboolean          active;
+  return_if_no_display (display, data);
+
+  shell = GIMP_DISPLAY_SHELL (display->shell);
+
+  active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
+
+  gimp_display_shell_set_show_toolbar (shell, active);
+}
+
+void
 view_toggle_rulers_cmd_callback (GtkAction *action,
                                  gpointer   data)
 {
Index: app/actions/view-commands.h
===================================================================
--- app/actions/view-commands.h	(revision 25899)
+++ app/actions/view-commands.h	(working copy)
@@ -57,6 +57,8 @@
                                                 gpointer   data);
 void   view_toggle_menubar_cmd_callback        (GtkAction *action,
                                                 gpointer   data);
+void   view_toggle_toolbar_cmd_callback        (GtkAction *action,
+                                                gpointer   data);
 void   view_toggle_rulers_cmd_callback         (GtkAction *action,
                                                 gpointer   data);
 void   view_toggle_scrollbars_cmd_callback     (GtkAction *action,
Index: app/display/gimpdisplayshell.c
===================================================================
--- app/display/gimpdisplayshell.c	(revision 25899)
+++ app/display/gimpdisplayshell.c	(working copy)
@@ -903,6 +903,10 @@
                         shell);
     }
 
+  shell->toolbar = gtk_ui_manager_get_widget(GTK_UI_MANAGER (shell->menubar_manager), "/image-toolbar");
+  gtk_box_pack_start (GTK_BOX (main_vbox), shell->toolbar, FALSE, FALSE, 0);
+  gtk_widget_show_all (shell->toolbar);
+
   /*  another vbox for everything except the statusbar  */
   disp_vbox = gtk_vbox_new (FALSE, 1);
   gtk_box_pack_start (GTK_BOX (main_vbox), disp_vbox, TRUE, TRUE, 0);
Index: app/display/gimpdisplayshell.h
===================================================================
--- app/display/gimpdisplayshell.h	(revision 25899)
+++ app/display/gimpdisplayshell.h	(working copy)
@@ -128,6 +128,7 @@
   GtkWidget         *nav_ebox;         /*  SE: navigation event box           */
 
   GtkWidget         *menubar;          /*  menubar                            */
+  GtkWidget         *toolbar;          /*  toolbar                            */
   GtkWidget         *statusbar;        /*  statusbar                          */
 
   guchar            *render_buf;       /*  buffer for rendering the image     */
Index: app/display/gimpdisplayoptions.c
===================================================================
--- app/display/gimpdisplayoptions.c	(revision 25899)
+++ app/display/gimpdisplayoptions.c	(working copy)
@@ -42,6 +42,7 @@
 {
   PROP_0,
   PROP_SHOW_MENUBAR,
+  PROP_SHOW_TOOLBAR,
   PROP_SHOW_RULERS,
   PROP_SHOW_SCROLLBARS,
   PROP_SHOW_STATUSBAR,
@@ -106,6 +107,10 @@
                                     "show-menubar", SHOW_MENUBAR_BLURB,
                                     TRUE,
                                     GIMP_PARAM_STATIC_STRINGS);
+  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOLBAR,
+                                    "show-toolbar", SHOW_TOOLBAR_BLURB,
+                                    TRUE,
+                                    GIMP_PARAM_STATIC_STRINGS);
   GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_RULERS,
                                     "show-rulers", SHOW_RULERS_BLURB,
                                     TRUE,
@@ -164,6 +169,10 @@
                                     "show-menubar", SHOW_MENUBAR_BLURB,
                                     FALSE,
                                     GIMP_PARAM_STATIC_STRINGS);
+  GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_TOOLBAR,
+                                    "show-toolbar", SHOW_TOOLBAR_BLURB,
+                                    FALSE,
+                                    GIMP_PARAM_STATIC_STRINGS);
   GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_SHOW_RULERS,
                                     "show-rulers", SHOW_RULERS_BLURB,
                                     FALSE,
@@ -264,6 +273,9 @@
     case PROP_SHOW_MENUBAR:
       options->show_menubar = g_value_get_boolean (value);
       break;
+    case PROP_SHOW_TOOLBAR:
+      options->show_toolbar = g_value_get_boolean (value);
+      break;
     case PROP_SHOW_RULERS:
       options->show_rulers = g_value_get_boolean (value);
       break;
@@ -314,6 +326,9 @@
     case PROP_SHOW_MENUBAR:
       g_value_set_boolean (value, options->show_menubar);
       break;
+    case PROP_SHOW_TOOLBAR:
+      g_value_set_boolean (value, options->show_toolbar);
+      break;
     case PROP_SHOW_RULERS:
       g_value_set_boolean (value, options->show_rulers);
       break;
Index: app/display/gimpdisplayoptions.h
===================================================================
--- app/display/gimpdisplayoptions.h	(revision 25899)
+++ app/display/gimpdisplayoptions.h	(working copy)
@@ -42,6 +42,7 @@
 
   /*  GimpDisplayShell options  */
   gboolean               show_menubar;
+  gboolean               show_toolbar;
   gboolean               show_rulers;
   gboolean               show_scrollbars;
   gboolean               show_statusbar;
Index: app/display/gimpdisplayshell-appearance.c
===================================================================
--- app/display/gimpdisplayshell-appearance.c	(revision 25899)
+++ app/display/gimpdisplayshell-appearance.c	(working copy)
@@ -168,6 +168,40 @@
 }
 
 void
+gimp_display_shell_set_show_toolbar (GimpDisplayShell *shell,
+                                     gboolean          show)
+{
+  GimpDisplayOptions *options;
+
+  g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
+
+  options = GET_OPTIONS (shell);
+
+  g_object_set (options, "show-toolbar", show, NULL);
+
+  if (shell->toolbar)
+    {
+      if (show)
+        gtk_widget_show (shell->toolbar);
+      else
+        gtk_widget_hide (shell->toolbar);
+    }
+
+  SET_ACTIVE (shell->menubar_manager, "view-show-toolbar", show);
+
+  if (IS_ACTIVE_DISPLAY (shell))
+    SET_ACTIVE (shell->popup_manager, "view-show-toolbar", show);
+}
+
+gboolean
+gimp_display_shell_get_show_toolbar (GimpDisplayShell *shell)
+{
+  g_return_val_if_fail (GIMP_IS_DISPLAY_SHELL (shell), FALSE);
+
+  return GET_OPTIONS (shell)->show_toolbar;
+}
+
+void
 gimp_display_shell_set_show_rulers (GimpDisplayShell *shell,
                                     gboolean          show)
 {
Index: app/display/gimpdisplayshell-appearance.h
===================================================================
--- app/display/gimpdisplayshell-appearance.h	(revision 25899)
+++ app/display/gimpdisplayshell-appearance.h	(working copy)
@@ -30,6 +30,10 @@
                                                       gboolean          show);
 gboolean   gimp_display_shell_get_show_menubar       (GimpDisplayShell *shell);
 
+void       gimp_display_shell_set_show_toolbar       (GimpDisplayShell *shell,
+                                                      gboolean          show);
+gboolean   gimp_display_shell_get_show_toolbar       (GimpDisplayShell *shell);
+
 void       gimp_display_shell_set_show_rulers        (GimpDisplayShell *shell,
                                                       gboolean          show);
 gboolean   gimp_display_shell_get_show_rulers        (GimpDisplayShell *shell);
Index: app/config/gimprc-blurbs.h
===================================================================
--- app/config/gimprc-blurbs.h	(revision 25899)
+++ app/config/gimprc-blurbs.h	(working copy)
@@ -295,6 +295,10 @@
 N_("When enabled, the menubar is visible by default. This can also be " \
    "toggled with the \"View->Show Menubar\" command.")
 
+#define SHOW_TOOLBAR_BLURB \
+N_("When enabled, the toolbar is visible by default. This can also be " \
+   "toggled with the \"View->Show Toolbar\" command.")
+
 #define SHOW_RULERS_BLURB \
 N_("When enabled, the rulers are visible by default. This can also be " \
    "toggled with the \"View->Show Rulers\" command.")
Index: app/widgets/gimphelp-ids.h
===================================================================
--- app/widgets/gimphelp-ids.h	(revision 25899)
+++ app/widgets/gimphelp-ids.h	(working copy)
@@ -91,6 +91,7 @@
 #define GIMP_HELP_VIEW_SNAP_TO_CANVAS             "gimp-view-snap-to-canvas"
 #define GIMP_HELP_VIEW_SNAP_TO_VECTORS            "gimp-view-snap-to-vectors"
 #define GIMP_HELP_VIEW_SHOW_MENUBAR               "gimp-view-show-menubar"
+#define GIMP_HELP_VIEW_SHOW_TOOLBAR               "gimp-view-show-toolbar"
 #define GIMP_HELP_VIEW_SHOW_RULERS                "gimp-view-show-rulers"
 #define GIMP_HELP_VIEW_SHOW_SCROLLBARS            "gimp-view-show-scrollbars"
 #define GIMP_HELP_VIEW_SHOW_STATUSBAR             "gimp-view-show-statusbar"
