--- pl-5.6.20.orig/src/pl-gmp.c 2006-08-28 20:19:17.000000000 +1200 +++ pl-5.6.20/src/pl-gmp.c 2006-10-02 22:25:15.000000000 +1300 @@ -126,10 +126,8 @@ p++; if ( wsize == sizeof(int64_t)/sizeof(word) ) - { int64_t *ip = (int64_t *)p; - - n->type = V_INTEGER; - n->value.i = *ip; + { n->type = V_INTEGER; + memcpy(&n->value.i, p, sizeof(int64_t)); } else { n->type = V_MPZ;