--- Utilities/mng.c.old	2005-05-02 19:25:48.000000000 -0700
+++ Utilities/mng.c	2005-05-02 19:41:24.000000000 -0700
@@ -217,7 +217,7 @@
 	// BGRA8        
 	unsigned int i = mymng->width;
 	unsigned int fr, fg, fb, br, bg, bb, r, g, b, a;
-	unsigned short output, input;
+	unsigned short output, input, *ptr;
 
 	while (i--) {
 		fb = *src++;
@@ -228,7 +228,10 @@
 		a = a * mymng->alpha / 100;
 		switch (mymng->fbbpp) {
 		case 16:
-			input = *((unsigned short *) background)++;
+			input = *((unsigned short *) background);
+			ptr = (unsigned short *) background;
+			ptr++;
+			background = ptr;
 
 			br = (input >> mng->fbredo) << (8 - mng->fbredl);
 			bg = (input >> mng->fbgreeno) << (8 -
@@ -279,7 +282,10 @@
 						  fbgreeno) | (b << mng->
 							       fbblueo);
 
-			*((unsigned short *) dest)++ = output;
+			*((unsigned short *) dest) = output;
+			ptr = (unsigned short *) dest;
+			ptr++;
+			dest = ptr;
 			break;
 		case 24:
 			*dest++ = b;
