diff -r a858cde113f2 Modules/_ctypes/cfield.c --- a/Modules/_ctypes/cfield.c Sat Jan 24 19:26:18 2015 -0800 +++ b/Modules/_ctypes/cfield.c Sun Jan 25 19:29:01 2015 +0100 @@ -765,6 +765,7 @@ if (get_ulong(value, &val) < 0) return NULL; memcpy(&field, ptr, sizeof(field)); + field = SWAP_INT(field); field = SET(unsigned int, field, (unsigned int)val, size); field = SWAP_INT(field); memcpy(ptr, &field, sizeof(field));