Index: about-dialog.c
===================================================================
RCS file: /cvs/gnome/gimp/app/gui/about-dialog.c,v
retrieving revision 1.99
diff -u -r1.99 about-dialog.c
--- about-dialog.c	7 Nov 2003 17:28:35 -0000	1.99
+++ about-dialog.c	7 Dec 2003 21:19:09 -0000
@@ -352,6 +352,11 @@
       gtk_widget_show (scroll_area);
 
       label =
+	gtk_label_new (_("Translated by:"));
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
+      gtk_widget_show (label);
+      
+      label =
 	gtk_label_new (_("Visit http://www.gimp.org/ for more information"));
       gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
       gtk_widget_show (label);
Index: image-commands.c
===================================================================
RCS file: /cvs/gnome/gimp/app/gui/image-commands.c,v
retrieving revision 1.46
diff -u -r1.46 image-commands.c
--- image-commands.c	14 Nov 2003 18:04:52 -0000	1.46
+++ image-commands.c	7 Dec 2003 21:19:12 -0000
@@ -24,6 +24,8 @@
 
 #include "gui-types.h"
 
+#include "config/gimpguiconfig.h"
+
 #include "core/gimp.h"
 #include "core/gimpchannel.h"
 #include "core/gimpcontext.h"
@@ -91,6 +93,8 @@
 					      gboolean     do_scale,
 					      gpointer     data);
 static void     image_scale_implement        (ImageResize *image_scale);
+static gboolean image_scale_too_big          (ImageResize *image_scale);
+static void     image_scale_warn             (ImageResize *image_scale);
 
 
 /*  public functions  */
@@ -489,7 +493,11 @@
 
   gtk_widget_set_sensitive (image_scale->resize->resize_shell, FALSE);
 
-  if (gimp_image_check_scaling (image_scale->gimage,
+  if (image_scale_too_big (image_scale))
+    {
+      image_scale_warn (image_scale);
+    }
+  else if (gimp_image_check_scaling (image_scale->gimage,
 				image_scale->resize->width,
 				image_scale->resize->height))
     {
@@ -526,7 +534,8 @@
 {
   ImageResize *image_scale = data;
 
-  if (do_scale) /* User doesn't mind losing layers... */
+  if (do_scale) /* User doesn't mind losing layers or 
+                 * creating huge image... */
     {
       image_scale_implement (image_scale);
 
@@ -538,6 +547,61 @@
     }
 }
 
+static gboolean
+image_scale_too_big (ImageResize *image_scale)
+{
+  glong new_size = gimp_object_get_memsize 
+        (GIMP_OBJECT (image_scale->gimage), NULL) 
+        * image_scale->resize->ratio_x 
+        * image_scale->resize->ratio_y;
+
+  return (new_size > 
+    GIMP_GUI_CONFIG (image_scale->gimage->gimp->config)->max_new_image_size);
+}
+
+static void image_scale_warn (ImageResize *image_scale)
+{
+  GtkWidget *dialog;
+  gchar *size_str;
+  gchar *max_size_str;
+  gchar *text;
+
+
+  size_str = gimp_memsize_to_string (gimp_object_get_memsize 
+        (GIMP_OBJECT (image_scale->gimage), NULL) 
+        * image_scale->resize->ratio_x 
+        * image_scale->resize->ratio_y);
+  max_size_str = gimp_memsize_to_string 
+    (GIMP_GUI_CONFIG (image_scale->gimage->gimp->config)
+      ->max_new_image_size);
+
+  text = g_strdup_printf (_("You are trying to create an image with "
+			    "a size of %s.\n\n"
+			    "Choose OK to create this image anyway.\n"
+			    "Choose Cancel if you did not intend to "
+			    "create such a large image.\n\n"
+			    "To prevent this dialog from appearing, "
+			    "increase the \"Maximum Image Size\" "
+			    "setting (currently %s) in the "
+			    "Preferences dialog."),
+                          size_str, max_size_str);
+  dialog =
+    gimp_query_boolean_box (_("Layer Too Small"),
+                            image_scale->resize->resize_shell,
+                            gimp_standard_help_func,
+                            GIMP_HELP_IMAGE_SCALE_WARNING,
+                            GTK_STOCK_DIALOG_QUESTION,
+                            _("The chosen image size is greater than "
+                              "the maximum image size set in your preferences.\n"
+                              "Are you sure you want to continue?"),
+                            GTK_STOCK_OK, GTK_STOCK_CANCEL,
+                            G_OBJECT (image_scale->resize->resize_shell),
+                            "destroy",
+                            image_scale_warn_callback,
+                            image_scale);
+  gtk_widget_show (dialog);
+}
+
 static void
 image_scale_implement (ImageResize *image_scale)
 {
