--- gimp-2.0.1/app/paint-funcs/paint-funcs-generic.h	2004-01-27 22:58:52.000000000 -0500
+++ gimp-2.0.1.patched/app/paint-funcs/paint-funcs-generic.h	2004-05-21 20:24:22.000000000 -0400
@@ -1394,19 +1394,23 @@ combine_mask_and_alpha_channel (guchar  
 
   if (opacity != 255)
     while (length --)
-    {
-      mask_val = INT_MULT(*mask, opacity, tmp);
-      mask++;
-      *src = *src + INT_MULT((255 - *src) , mask_val, tmp);
-      src += bytes;
-    }
+      {
+        mask_val = INT_MULT(*mask, opacity, tmp);
+
+        if (opacity > *src)
+          *src = *src + INT_MULT((opacity - *src), mask_val, tmp);
+        
+        src += bytes;
+        mask++;
+      }
   else
     while (length --)
-    {
-      *src = *src + INT_MULT((255 - *src) , *mask, tmp);
-      src += bytes;
-      mask++;
-    }
+      {
+        *src = *src + INT_MULT((255 - *src) , *mask, tmp);
+        
+        src += bytes;
+        mask++;
+      }
 }
 
 
