diff -r d229032dc213 Modules/_randommodule.c --- a/Modules/_randommodule.c Tue Apr 17 22:48:06 2012 -0400 +++ b/Modules/_randommodule.c Thu Apr 19 07:50:30 2012 +0100 @@ -427,8 +427,11 @@ mt[j] = tmp; } - for (i = 0; i < N; i++) + mt[0] = 0x80000000UL; /* MSB is 1; assuring non-zero initial array */ + for (i = 1; i < N; i++) { mt[i] += i+1; + mt[i] &= 0xffffffffUL; /* for WORDSIZE > 32 machines */ + } self->index = N; Py_INCREF(Py_None);