diff -r b31441753abc Modules/audioop.c --- a/Modules/audioop.c Tue Mar 18 07:47:35 2014 +0100 +++ b/Modules/audioop.c Tue Mar 18 20:53:16 2014 +0200 @@ -301,12 +301,12 @@ #define GETINT24(cp, i) ( \ ((unsigned char *)(cp) + (i))[2] + \ (((unsigned char *)(cp) + (i))[1] << 8) + \ - (((signed char *)(cp) + (i))[0] << 16) ) + (int)((unsigned int)(int)((signed char *)(cp) + (i))[0] << 16) ) #else #define GETINT24(cp, i) ( \ ((unsigned char *)(cp) + (i))[0] + \ (((unsigned char *)(cp) + (i))[1] << 8) + \ - (((signed char *)(cp) + (i))[2] << 16) ) + (int)((unsigned int)(int)((signed char *)(cp) + (i))[2] << 16) ) #endif