diff --git a/gajim/gtk/adhoc.py b/gajim/gtk/adhoc.py
index 182075b967f0a2d82c62640a5e9d8e7d40689286..593e9f096cf669230993200c5bfeecfecca4f8e3 100644
--- a/gajim/gtk/adhoc.py
+++ b/gajim/gtk/adhoc.py
@@ -83,14 +83,12 @@ def _add_custom_buttons(self):
         for button in list(action_area.get_children()):
             self.remove_action_widget(button)
 
-        cancel = Gtk.Button(label=_('Cancel'))
+        cancel = ActionButton(_('Cancel'), AdHocAction.CANCEL)
         cancel.connect('clicked', self._abort)
-        cancel.get_style_context().add_class('destructive-action')
         self._buttons['cancel'] = cancel
         self.add_action_widget(cancel)
 
-        complete = Gtk.Button(label=_('Finish'))
-        complete.action = AdHocAction.COMPLETE
+        complete = ActionButton(_('Finish'), AdHocAction.COMPLETE)
         complete.connect('clicked', self._execute_action)
         self._buttons['complete'] = complete
         self.add_action_widget(complete)
@@ -101,28 +99,26 @@ def _add_custom_buttons(self):
         self._buttons['commands'] = commands
         self.add_action_widget(commands)
 
-        next_ = Gtk.Button(label=_('Next'))
-        next_.action = AdHocAction.NEXT
+        next_ = ActionButton(_('Next'), AdHocAction.NEXT)
         next_.connect('clicked', self._execute_action)
         self._buttons['next'] = next_
         self.add_action_widget(next_)
 
-        prev = Gtk.Button(label=_('Previous'))
-        prev.action = AdHocAction.PREV
+        prev = ActionButton(_('Previous'), AdHocAction.PREV)
         prev.connect('clicked', self._execute_action)
         self._buttons['prev'] = prev
         self.add_action_widget(prev)
 
-        execute = Gtk.Button(label=_('Execute'))
-        execute.action = AdHocAction.EXECUTE
-        execute.get_style_context().add_class('suggested-action')
+        execute = ActionButton(_('Execute'), AdHocAction.EXECUTE)
         execute.connect('clicked', self._execute_action)
         self._buttons['execute'] = execute
         self.add_action_widget(execute)
 
     def _set_button_visibility(self, page):
-        for button in self._buttons.values():
+        for action, button in self._buttons.items():
             button.hide()
+            if action in ('next', 'prev', 'complete'):
+                button.remove_default()
 
         if page == Page.COMMANDS:
             self._buttons['execute'].show()
@@ -132,10 +128,13 @@ def _set_button_visibility(self, page):
             stage_page = self.get_nth_page(page)
             if not stage_page.actions:
                 self._buttons['complete'].show()
+                self._buttons['complete'].make_default()
             else:
                 for action in stage_page.actions:
                     button = self._buttons.get(action.value)
                     if button is not None:
+                        if button.action == stage_page.default:
+                            button.make_default()
                         button.show()
 
         elif page == Page.ERROR:
@@ -328,6 +327,7 @@ def __init__(self):
         self._dataform_widget = None
         self._notes = []
         self._last_stage_data = None
+        self.default = None
         self.show_all()
 
     @property
@@ -347,6 +347,7 @@ def process_stage(self, stage_data):
         self._last_stage_data = stage_data
         self._show_notes(stage_data.notes)
         self._show_form(stage_data.data)
+        self.default = stage_data.default
 
     def _show_form(self, form):
         if self._dataform_widget is not None:
@@ -482,3 +483,20 @@ def show_command_button(self):
     @show_command_button.setter
     def show_command_button(self, value):
         self._show_command_button = value
+
+
+class ActionButton(Gtk.Button):
+    def __init__(self, label, action):
+        Gtk.Button.__init__(self, label=label)
+        self.action = action
+
+        if action == AdHocAction.CANCEL:
+            self.get_style_context().add_class('destructive-action')
+        if action == AdHocAction.EXECUTE:
+            self.get_style_context().add_class('suggested-action')
+
+    def make_default(self):
+        self.get_style_context().add_class('suggested-action')
+
+    def remove_default(self):
+        self.get_style_context().remove_class('suggested-action')