On at least powerpc64 long is 64bit, and since XID, used for Window and Pixmap are 64bit then some protocol fields are not properly defined if B32 is not defined to make it a 32bit bitfield ... - Rene Rebe --- ./Xmd.h 2004-08-11 23:14:16.000000000 +0200 +++ ./Xmd.h 2006-02-02 11:03:44.000000000 +0100 @@ -108,8 +108,6 @@ #ifdef WORD64 typedef long INT64; typedef unsigned long CARD64; -#define B32 :32 -#define B16 :16 #ifdef UNSIGNEDBITFIELDS typedef unsigned int INT32; typedef unsigned int INT16; @@ -123,8 +121,6 @@ #endif #endif #else -#define B32 -#define B16 #ifdef LONG64 typedef long INT64; typedef int INT32; @@ -134,6 +130,14 @@ typedef short INT16; #endif +#if defined (INT64) || defined (LONG64) +#define B32 :32 +#define B16 :16 +#else +#define B32 +#define B16 +#endif + #if defined(__STDC__) || defined(sgi) || defined(AIXV3) typedef signed char INT8; #else