diff -dur pan-0.14.2.91/pan/base/msort.c src.pan.1135212550.26493.3069070791/pan-0.14.2.91/pan/base/msort.c --- pan-0.14.2.91/pan/base/msort.c 2001-06-18 20:33:38.000000000 +0200 +++ src.pan.1135212550.26493.3069070791/pan-0.14.2.91/pan/base/msort.c 2005-12-23 22:28:43.000000000 +0100 @@ -62,18 +62,18 @@ /* operating on aligned words. Use direct word stores. */ while (n1 > 0 && n2 > 0) { + unsigned long int **tmpptr = &tmp, **bptr; if ((*cmp) (b1, b2) <= 0) { --n1; - *((unsigned long int *) tmp)++ = - *((unsigned long int *) b1)++; + bptr = &b1; } else { --n2; - *((unsigned long int *) tmp)++ = - *((unsigned long int *) b2)++; + bptr = &b2; } + **tmpptr = *bptr; (*tmpptr)++; (*bptr)++; } else while (n1 > 0 && n2 > 0)