diff --git a/gaupol/action.py b/gaupol/action.py
index 9b5fc62..1984a97 100644
--- a/gaupol/action.py
+++ b/gaupol/action.py
@@ -76,17 +76,17 @@ class Action(Gtk.Action):
         """Raise :exc:`aeidon.AffirmationError` if action cannot be done."""
         pass
 
-    def do_create_tool_item(self):
-        """Return a tool button widget."""
-        # This is a really fucking strange way to replace the deprecated
-        # Gtk.Action.set_tool_item_type function, but it seems to work.
-        # UI manager or whoever will set the correct labels and icons.
-        if self.tool_item_type is Gtk.ToolButton:
-            return Gtk.ToolButton()
-        if self.tool_item_type is Gtk.MenuToolButton:
-            return Gtk.MenuToolButton()
-        raise ValueError("Bad value for self.tool_item_type: {}"
-                         .format(repr(self.tool_item_type)))
+    # def do_create_tool_item(self):
+    #     """Return a tool button widget."""
+    #     # This is a really fucking strange way to replace the deprecated
+    #     # Gtk.Action.set_tool_item_type function, but it seems to work.
+    #     # UI manager or whoever will set the correct labels and icons.
+    #     if self.tool_item_type is Gtk.ToolButton:
+    #         return Gtk.ToolButton()
+    #     if self.tool_item_type is Gtk.MenuToolButton:
+    #         return Gtk.MenuToolButton()
+    #     raise ValueError("Bad value for self.tool_item_type: {}"
+    #                      .format(repr(self.tool_item_type)))
 
     def finalize(self, application):
         """Connect action to widgets and methods of `application`."""
diff --git a/gaupol/application.py b/gaupol/application.py
index 7a952fe..51f6551 100644
--- a/gaupol/application.py
+++ b/gaupol/application.py
@@ -273,11 +273,12 @@ class Application(aeidon.Observable, metaclass=ApplicationMeta):
     def _init_redo_button(self):
         """Initialize the redo button on the main toolbar."""
         redo_button = self.get_tool_item("redo_action")
-        redo_button.set_menu(Gtk.Menu())
-        tip = _("Redo undone actions")
-        redo_button.set_arrow_tooltip_text(tip)
-        callback = self._on_redo_button_show_menu
-        redo_button.connect("show-menu", callback)
+        if isinstance(redo_button, Gtk.MenuToolButton):
+            redo_button.set_menu(Gtk.Menu())
+            tip = _("Redo undone actions")
+            redo_button.set_arrow_tooltip_text(tip)
+            callback = self._on_redo_button_show_menu
+            redo_button.connect("show-menu", callback)
 
     def _init_statusbar(self, vbox):
         """Initialize the statusbar."""
@@ -328,11 +329,12 @@ class Application(aeidon.Observable, metaclass=ApplicationMeta):
     def _init_undo_button(self):
         """Initialize the undo button on the main toolbar."""
         undo_button = self.get_tool_item("undo_action")
-        undo_button.set_menu(Gtk.Menu())
-        tip = _("Undo actions")
-        undo_button.set_arrow_tooltip_text(tip)
-        callback = self._on_undo_button_show_menu
-        undo_button.connect("show-menu", callback)
+        if isinstance(undo_button, Gtk.MenuToolButton):
+            undo_button.set_menu(Gtk.Menu())
+            tip = _("Undo actions")
+            undo_button.set_arrow_tooltip_text(tip)
+            callback = self._on_undo_button_show_menu
+            undo_button.connect("show-menu", callback)
 
     def _init_visibilities(self):
         """Initialize visibilities of hideable widgets."""
