diff --git a/src/screenshot-application.c b/src/screenshot-application.c
index 6d6d6d5..b6fca0b 100644
--- a/src/screenshot-application.c
+++ b/src/screenshot-application.c
@@ -45,9 +45,10 @@
 #define LAST_SAVE_DIRECTORY_KEY "last-save-directory"
 
 G_DEFINE_TYPE (ScreenshotApplication, screenshot_application, GTK_TYPE_APPLICATION);
-
+static void screenshot_back (ScreenshotApplication *self);
 static void screenshot_save_to_file (ScreenshotApplication *self);
 static void screenshot_show_interactive_dialog (ScreenshotApplication *self);
+static void screenshot_close_interactive_dialog (ScreenshotApplication *self);
 
 struct _ScreenshotApplicationPriv {
   gchar *icc_profile_base64;
@@ -114,11 +115,7 @@ save_pixbuf_handle_success (ScreenshotApplication *self)
 
   if (screenshot_config->interactive)
     {
-      ScreenshotDialog *dialog = self->priv->dialog;
-
-      save_folder_to_settings (self);
-      gtk_widget_destroy (dialog->dialog);
-      g_free (dialog);
+      screenshot_close_interactive_dialog (self);
     }
   else
     {
@@ -382,6 +379,13 @@ screenshot_save_to_file (ScreenshotApplication *self)
 }
 
 static void
+screenshot_back (ScreenshotApplication *self)
+{
+  screenshot_close_interactive_dialog (self);
+  screenshot_show_interactive_dialog (self);
+}
+
+static void
 screenshot_save_to_clipboard (ScreenshotApplication *self)
 {
   GtkClipboard *clipboard;
@@ -406,6 +410,9 @@ screenshot_dialog_response_cb (ScreenshotResponse response,
     case SCREENSHOT_RESPONSE_COPY:
       screenshot_save_to_clipboard (self);
       break;
+    case SCREENSHOT_RESPONSE_BACK:
+      screenshot_back (self);
+      break;
     default:
       g_assert_not_reached ();
       break;
@@ -719,6 +726,15 @@ screenshot_show_interactive_dialog (ScreenshotApplication *self)
 }
 
 static void
+screenshot_close_interactive_dialog (ScreenshotApplication *self)
+{
+  ScreenshotDialog *dialog = self->priv->dialog;
+  save_folder_to_settings (self);
+  gtk_widget_destroy (dialog->dialog);
+  g_free (dialog);
+}
+
+static void
 action_quit (GSimpleAction *action,
              GVariant *parameter,
              gpointer user_data)
diff --git a/src/screenshot-dialog.c b/src/screenshot-dialog.c
index b7046ed..4b746b0 100644
--- a/src/screenshot-dialog.c
+++ b/src/screenshot-dialog.c
@@ -143,8 +143,13 @@ button_clicked (GtkWidget *button, ScreenshotDialog *dialog)
 {
   ScreenshotResponse res;
 
-  res = (button == dialog->save_button) ? SCREENSHOT_RESPONSE_SAVE
-                                        : SCREENSHOT_RESPONSE_COPY;
+  if (button == dialog->save_button) 
+      res = SCREENSHOT_RESPONSE_SAVE;
+  else if (button == dialog->copy_button)
+      res = SCREENSHOT_RESPONSE_COPY;
+  else
+      res = SCREENSHOT_RESPONSE_BACK;
+      
 
   dialog->callback (res, dialog->user_data);
 }
@@ -240,7 +245,9 @@ screenshot_dialog_new (GdkPixbuf              *screenshot,
   dialog->save_button = GTK_WIDGET (gtk_builder_get_object (ui, "save_button"));
   g_signal_connect (dialog->save_button, "clicked", G_CALLBACK (button_clicked), dialog);
   dialog->copy_button = GTK_WIDGET (gtk_builder_get_object (ui, "copy_button"));
-  g_signal_connect (dialog->copy_button, "clicked", G_CALLBACK (button_clicked), dialog);
+  g_signal_connect (dialog->copy_button, "clicked", G_CALLBACK (button_clicked), dialog); 
+  dialog->back_button = GTK_WIDGET (gtk_builder_get_object (ui, "back_button"));
+  g_signal_connect (dialog->back_button, "clicked", G_CALLBACK (button_clicked), dialog);
 
   setup_drawing_area (dialog, ui);
 
diff --git a/src/screenshot-dialog.h b/src/screenshot-dialog.h
index 45b0641..67bfbd5 100644
--- a/src/screenshot-dialog.h
+++ b/src/screenshot-dialog.h
@@ -24,7 +24,9 @@
 
 typedef enum {
   SCREENSHOT_RESPONSE_SAVE,
-  SCREENSHOT_RESPONSE_COPY
+  SCREENSHOT_RESPONSE_COPY,
+  SCREENSHOT_RESPONSE_BACK
+
 } ScreenshotResponse;
 
 typedef void (*SaveScreenshotCallback) (ScreenshotResponse response, gpointer *user_data);
@@ -38,6 +40,7 @@ typedef struct {
   GtkWidget *filename_entry;
   GtkWidget *save_button;
   GtkWidget *copy_button;
+  GtkWidget *back_button;
 
   gint drag_x;
   gint drag_y;
