--- sourceforge.net/trunk/rdesktop/xwin.c 2005/12/27 08:58:57 1033 +++ sourceforge.net/trunk/rdesktop/xwin.c 2006/01/24 12:24:40 1040 @@ -802,9 +802,10 @@ #else REPEAT4 ( - *((uint32 *) out) = *((uint32 *) data); - out += 4; - data += 3; + /* Only read 3 bytes. Reading 4 bytes means reading beyound buffer. */ + *((uint32 *) out) = *((uint16 *) data) + (*((uint8 *) data + 2) << 16); + out += 4; + data += 3; ) #endif /* *INDENT-ON* */