--- jrand48.c.orig 2003-05-20 15:21:02.000000000 -0700 +++ jrand48.c 2005-11-03 13:31:28.000000000 -0800 @@ -19,6 +19,7 @@ long jrand48(unsigned short xseed[3]) { - _dorand48(xseed); - return ((long) xseed[2] << 16) + (long) xseed[1]; + uint48 tmp; + DORAND48(tmp, xseed); + return (int)((tmp >> 16) & 0xffffffff); }