Index: /trunk/Ohana/src/kapa2/src/Remap32.c
===================================================================
--- /trunk/Ohana/src/kapa2/src/Remap32.c	(revision 16388)
+++ /trunk/Ohana/src/kapa2/src/Remap32.c	(revision 16389)
@@ -1,7 +1,9 @@
 # include "Ximage.h"
 
-# ifndef ISWAP
-# define ISWAP(X,Y) {int tmp=(X); (X) = (Y); (Y) = tmp;}
-# endif
+# define MY_SWAP_WORD(W) { \
+  char tmp, *X; \
+  X = (char *) &W; \
+  tmp = X[0]; X[0] = X[3]; X[3] = tmp; \
+  tmp = X[1]; X[1] = X[2]; X[2] = tmp; }
 
 void Remap32 (Graphic *graphic, KapaImageWidget *image, Picture *picture, Matrix *matrix) {
@@ -17,12 +19,24 @@
   unsigned long *pixel, pixvalue;
   unsigned long back;
+  int swap_client, swap_server, swap_bytes;
 
   ALLOCATE (pixel, unsigned long, graphic[0].Npixels);
+
+# ifdef BYTE_SWAP
+  swap_client = 1;
+# else 
+  swap_client = 0;
+# endif  
+
+  swap_server = ImageByteOrder (graphic[0].display);
+  swap_bytes = !(swap_client ^ swap_server);
 
   // local array for pixel values
   for (i = 0; i < graphic[0].Npixels; i++) { 
     pixel[i] = graphic[0].cmap[i].pixel;
+    if (swap_bytes) MY_SWAP_WORD(pixel[i]);
   }
   back = graphic[0].back;
+  if (swap_bytes) MY_SWAP_WORD(back);
 
   // set up expansions
