--- gnome-screenshot/gnome-screenshot.c.orig	2010-10-05 16:47:27.374254773 -0700
+++ gnome-screenshot/gnome-screenshot.c	2010-10-05 16:56:11.751250283 -0700
@@ -773,13 +773,14 @@
 finish_prepare_screenshot (char *initial_uri, GdkWindow *window, GdkRectangle *rectangle)
 {  
   ScreenshotDialog *dialog;
+  gboolean include_mask = (!take_window_shot && !take_area_shot);
 
   /* always disable window border for full-desktop or selected-area screenshots */
   if (!take_window_shot)
-    screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, FALSE);
+    screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, FALSE, include_mask);
   else
     {
-      screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, include_border);
+      screenshot = screenshot_get_pixbuf (window, rectangle, include_pointer, include_border, include_mask);
 
       switch (border_effect[0])
         {
--- gnome-screenshot/screenshot-utils.c.orig	2010-10-05 16:44:54.489600238 -0700
+++ gnome-screenshot/screenshot-utils.c	2010-10-05 16:52:53.320249378 -0700
@@ -610,7 +610,8 @@
 screenshot_get_pixbuf (GdkWindow    *window,
                        GdkRectangle *rectangle,
                        gboolean      include_pointer,
-                       gboolean      include_border)
+                       gboolean      include_border,
+                       gboolean      include_mask)
 {
   GdkWindow *root;
   GdkPixbuf *screenshot;
@@ -671,8 +672,11 @@
   screenshot = gdk_pixbuf_get_from_drawable (NULL, root, NULL,
                                              x_orig, y_orig, 0, 0,
                                              width, height);
-
-  mask_monitors (screenshot, root);
+  /*
+   * Masking currently only works properly with full-screen shots
+   */
+  if (include_mask)
+      mask_monitors (screenshot, root);
 
 #ifdef HAVE_X11_EXTENSIONS_SHAPE_H
   if (include_border)
--- gnome-screenshot/screenshot-utils.h.orig	2010-10-05 16:53:09.970218057 -0700
+++ gnome-screenshot/screenshot-utils.h	2010-10-05 16:53:37.834250341 -0700
@@ -36,7 +36,8 @@
 GdkPixbuf *screenshot_get_pixbuf          (GdkWindow *win,
                                            GdkRectangle *rectangle,
                                            gboolean include_pointer,
-                                           gboolean include_border);
+                                           gboolean include_border,
+                                           gboolean include_mask);
 
 void       screenshot_show_error_dialog   (GtkWindow   *parent,
                                            const gchar *message,
