Index: /libpipi/trunk/pipi/combine/merge.c
===================================================================
--- /libpipi/trunk/pipi/combine/merge.c	(revision 3544)
+++ /libpipi/trunk/pipi/combine/merge.c	(revision 3545)
@@ -29,5 +29,4 @@
     pipi_pixels_t *img1p, *img2p, *dstp;
     float *img1data, *img2data, *dstdata;
-    double t2;
     int x, y, w, h;
 
@@ -39,5 +38,4 @@
     else if(t > 1.0)
         t = 1.0;
-    t2 = 1.0 - t;
 
     w = img1->w;
@@ -58,20 +56,22 @@
         {
             float p, q;
+            double t1 = t * img2data[4 * (y * w + x) + 3];
+            double t2 = 1.0 - t1;
 
             p = img1data[4 * (y * w + x)];
             q = img2data[4 * (y * w + x)];
-            dstdata[4 * (y * w + x)] = t * p + t2 * q;
+            dstdata[4 * (y * w + x)] = t2 * p + t1 * q;
 
             p = img1data[4 * (y * w + x) + 1];
             q = img2data[4 * (y * w + x) + 1];
-            dstdata[4 * (y * w + x) + 1] = t * p + t2 * q;
+            dstdata[4 * (y * w + x) + 1] = t2 * p + t1 * q;
 
             p = img1data[4 * (y * w + x) + 2];
             q = img2data[4 * (y * w + x) + 2];
-            dstdata[4 * (y * w + x) + 2] = t * p + t2 * q;
+            dstdata[4 * (y * w + x) + 2] = t2 * p + t1 * q;
 
             p = img1data[4 * (y * w + x) + 3];
             q = img2data[4 * (y * w + x) + 3];
-            dstdata[4 * (y * w + x) + 3] = t * p + t2 * q;
+            dstdata[4 * (y * w + x) + 3] = t2 * p + t1 * q;
         }
     }
