diff --git a/src/modules/Image/image.c b/src/modules/Image/image.c
index f6cf7477528249361ecea86624b2db70c8e6f1f1..4a6092692f87b4f01728c953a386dbcbde054818 100644
--- a/src/modules/Image/image.c
+++ b/src/modules/Image/image.c
@@ -1,9 +1,9 @@
-/* $Id: image.c,v 1.161 2000/06/02 05:01:44 per Exp $ */
+/* $Id: image.c,v 1.162 2000/06/03 21:01:02 per Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: image.c,v 1.161 2000/06/02 05:01:44 per Exp $
+**!	$Id: image.c,v 1.162 2000/06/03 21:01:02 per Exp $
 **! class Image
 **!
 **!	The main object of the <ref>Image</ref> module, this object
@@ -98,7 +98,7 @@
 
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: image.c,v 1.161 2000/06/02 05:01:44 per Exp $");
+RCSID("$Id: image.c,v 1.162 2000/06/03 21:01:02 per Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -2266,19 +2266,14 @@ void image_color(INT32 args)
    THREADS_ALLOW();
    {
 #ifdef ASSEMBLY_OK
-#define MCcol( A, B, C, D )   ((A<<24) | (B<<16) | (C<<8) | D)
      if( image_cpuid & IMAGE_MMX )
      {
-       image_mult_buffer_mmx_x86asm( d,s,x/4,
-                                     MCcol(rgb.r,rgb.b,rgb.g, rgb.r ),
-                                     MCcol(rgb.g,rgb.r,rgb.b, rgb.g ),  
-                                     MCcol(rgb.b,rgb.g,rgb.r, rgb.b ) ); 
+       image_mult_buffer_mmx_x86asm( d,s,x/4, RGB2ASMCOL( rgb )  ); 
        s += x;
        x = x%4;
        s -= x;
      }
    }
-#undef MCcol
 #endif
    while (x--)
    {
diff --git a/src/modules/Image/operator.c b/src/modules/Image/operator.c
index d0e8bfa6083c9eda6c0f4aeb4948594aa6389c67..ff51acd804c86747c6bb223d5b81c3e1dc5537b5 100644
--- a/src/modules/Image/operator.c
+++ b/src/modules/Image/operator.c
@@ -1,9 +1,9 @@
-/* $Id: operator.c,v 1.27 2000/06/02 05:03:32 per Exp $ */
+/* $Id: operator.c,v 1.28 2000/06/03 21:01:16 per Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: operator.c,v 1.27 2000/06/02 05:03:32 per Exp $
+**!	$Id: operator.c,v 1.28 2000/06/03 21:01:16 per Exp $
 **! class Image
 */
 
@@ -26,10 +26,7 @@
 
 #include "image.h"
 #include "image_machine.h"
-
-#ifdef ASSEMBLY_OK
 #include "assembly.h"
-#endif
 
 extern struct program *image_program;
 #ifdef THIS
@@ -188,7 +185,6 @@ STANDARD_OPERATOR_HEADER("`+")
    else
    {
 #ifdef ASSEMBLY_OK
-#define MCcol( A, B, C, D )   ((A<<24) | (B<<16) | (C<<8) | D)
      if( image_cpuid & IMAGE_MMX )
      {
        if( (rgb.r >= 0) && (rgb.g >= 0) && (rgb.b >= 0) )
@@ -196,10 +192,7 @@ STANDARD_OPERATOR_HEADER("`+")
          if( rgb.r > 255 )   rgb.r = 255;
          if( rgb.g > 255 )   rgb.g = 255;
          if( rgb.b > 255 )   rgb.b = 255;
-         image_add_buffer_mmx_x86asm( d,s1,i/4,
-                                      MCcol( rgb.r, rgb.b, rgb.g, rgb.r ),
-                                      MCcol( rgb.g, rgb.r, rgb.b, rgb.g ),  
-                                      MCcol( rgb.b, rgb.g, rgb.r, rgb.b ) ); 
+         image_add_buffer_mmx_x86asm( d,s1,i/4,RGB2ASMCOL(rgb) );
        } else  if( (rgb.r < 0) && (rgb.g < 0) && (rgb.b < 0) ) {
          rgb.r = -rgb.r;
          rgb.g = -rgb.g;
@@ -207,16 +200,12 @@ STANDARD_OPERATOR_HEADER("`+")
          if( rgb.r > 255 )   rgb.r = 255;
          if( rgb.g > 255 )   rgb.g = 255;
          if( rgb.b > 255 )   rgb.b = 255;
-         image_sub_buffer_mmx_x86asm( d,s1,i/4,
-                                      MCcol( rgb.r, rgb.b, rgb.g, rgb.r ),
-                                      MCcol( rgb.g, rgb.r, rgb.b, rgb.g ),  
-                                      MCcol( rgb.b, rgb.g, rgb.r, rgb.b ) ); 
+         image_sub_buffer_mmx_x86asm( d,s1,i/4,RGB2ASMCOL(rgb) );
        }
        d += i;  s1 += i;
        i = i%4;
        d -= i;  s1 -= i;
      }
-#undef MCcol
 #endif
      while (i--)
      {
@@ -286,18 +275,13 @@ STANDARD_OPERATOR_HEADER("`*")
             (rgb.b < 256) )
    {
 #ifdef ASSEMBLY_OK
-#define MCcol( A, B, C, D )   ((A<<24) | (B<<16) | (C<<8) | D)
      if( image_cpuid & IMAGE_MMX )
      {
-       image_mult_buffer_mmx_x86asm( d,s1,i/4,
-                                     MCcol( rgb.r, rgb.b, rgb.g, rgb.r ),
-                                     MCcol( rgb.g, rgb.r, rgb.b, rgb.g ),  
-                                     MCcol( rgb.b, rgb.g, rgb.r, rgb.b ) ); 
+       image_mult_buffer_mmx_x86asm( d,s1,i/4,RGB2ASMCOL(rgb) );
        d += i;  s1 += i;
        i = i%4;
        d -= i;  s1 -= i;
      }
-#undef MCcol
 #endif
      while (i--)
      {