diff --git a/plug-ins/script-fu/script-fu-interface.c b/plug-ins/script-fu/script-fu-interface.c
index 5bb40d7..7a402e3 100644
--- a/plug-ins/script-fu/script-fu-interface.c
+++ b/plug-ins/script-fu/script-fu-interface.c
@@ -44,6 +44,8 @@
 #define COLOR_SAMPLE_WIDTH    60
 #define COLOR_SAMPLE_HEIGHT   15
 #define SLIDER_WIDTH          80
+#define BORDER_WIDTH          70
+#define BORDER_HEIGHT        170
 
 
 typedef struct
@@ -177,13 +179,15 @@ GimpPDBStatusType
 script_fu_interface (SFScript  *script,
                      gint       start_arg)
 {
-  GtkWidget    *dialog;
-  GtkWidget    *vbox;
-  GtkWidget    *vbox2;
-  GtkSizeGroup *group;
-  GSList       *list;
-  gchar        *title;
-  gint          i;
+  GtkWidget      *dialog;
+  GtkWidget      *vbox;
+  GtkWidget      *vbox2;
+  GtkWidget      *scrolled_window;
+  GtkRequisition  req;
+  GtkSizeGroup   *group;
+  GSList         *list;
+  gchar          *title;
+  gint            i;
 
   static gboolean gtk_initted = FALSE;
 
@@ -261,12 +265,24 @@ script_fu_interface (SFScript  *script,
                       vbox, TRUE, TRUE, 0);
   gtk_widget_show (vbox);
 
+  /* Allow for scolling */
+  scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+                                  GTK_POLICY_AUTOMATIC,
+                                  GTK_POLICY_AUTOMATIC);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
+                                       GTK_SHADOW_NONE);
+  gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0);
+  gtk_widget_show (scrolled_window);
+
   /*  The argument table  */
   sf_interface->table = gtk_table_new (script->n_args - start_arg, 3, FALSE);
-
   gtk_table_set_col_spacings (GTK_TABLE (sf_interface->table), 6);
   gtk_table_set_row_spacings (GTK_TABLE (sf_interface->table), 6);
-  gtk_box_pack_start (GTK_BOX (vbox), sf_interface->table, FALSE, FALSE, 0);
+  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window),
+                                         sf_interface->table);
+  gtk_viewport_set_shadow_type (GTK_VIEWPORT (gtk_widget_get_parent (sf_interface->table)),
+                                GTK_SHADOW_NONE);
   gtk_widget_show (sf_interface->table);
 
   group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
@@ -585,6 +601,10 @@ script_fu_interface (SFScript  *script,
                       FALSE, FALSE, 0);
   gtk_widget_show (sf_interface->progress_label);
 
+  gtk_widget_size_request (sf_interface->table, &req);
+  gtk_window_set_default_size (GTK_WINDOW (dialog),
+                               req.width  + BORDER_WIDTH,
+                               req.height + BORDER_HEIGHT);
   gtk_widget_show (dialog);
 
   gtk_main ();
