- allows to build with gcc3; taken from enblend's pyramid.h

--- src/hugin_base/vigra_ext/pyramid2.h.orig	Fri Apr 17 23:23:55 2009
+++ src/hugin_base/vigra_ext/pyramid2.h	Fri Apr 17 23:25:44 2009
@@ -647,7 +647,8 @@ inline void reduce(bool wraparound,
 
         // Main pixels in first row
         for (sx = sy, evenX = true, srcx = 0, dstx = 0;  srcx < src_w; ++srcx, ++sx.x) {
-            SKIPSMImagePixelType icurrent(SKIPSMImagePixelType(sa(sx)));
+            SKIPSMImagePixelType foo = SKIPSMImagePixelType(sa(sx));
+            SKIPSMImagePixelType icurrent(foo);
             if (evenX) {
                 isc0[dstx] = isr1 + IMUL6(isr0) + isrp + icurrent;
                 isc1[dstx] = IMUL5(isc0[dstx]);
@@ -714,7 +715,8 @@ inline void reduce(bool wraparound,
 
                 // Main entries in row
                 for (evenX = false, srcx = 1, dstx = 0; srcx < src_w; ++srcx, ++sx.x) {
-                    SKIPSMImagePixelType icurrent(SKIPSMImagePixelType(sa(sx)));
+                    SKIPSMImagePixelType foo = SKIPSMImagePixelType(sa(sx));
+                    SKIPSMImagePixelType icurrent(foo);
                     if (evenX) {
                         SKIPSMImagePixelType ip = isc1[dstx] + IMUL6(isc0[dstx]) + iscp[dstx];
                         isc1[dstx] = isc0[dstx] + iscp[dstx];
@@ -776,7 +778,8 @@ inline void reduce(bool wraparound,
 
                 // Main entries in odd-numbered row
                 for (evenX = false, srcx = 1, dstx = 0; srcx < src_w; ++srcx, ++sx.x) {
-                    SKIPSMImagePixelType icurrent(SKIPSMImagePixelType(sa(sx)));
+                    SKIPSMImagePixelType foo = SKIPSMImagePixelType(sa(sx));
+                    SKIPSMImagePixelType icurrent(foo);
                     if (evenX) {
                         iscp[dstx] = (isr1 + IMUL6(isr0) + isrp + icurrent) * 4;
                         isr1 = isr0 + isrp;
