Size is, correctly, size_t and mmap, correctly, takes size_t as the size argument; the cast to int flunks 64bit thinking. diff -Naur ElectricFence-2.2.2/page.c ElectricFence-2.2.3/page.c --- ElectricFence-2.2.2/page.c 2007-03-16 13:20:44.000000000 -0400 +++ ElectricFence-2.2.3/page.c 2007-03-16 13:23:28.000000000 -0400 @@ -70,7 +70,7 @@ */ allocation = (caddr_t) mmap( startAddr - ,(int)size + ,size ,PROT_READ|PROT_WRITE ,MAP_PRIVATE|MAP_ANONYMOUS ,-1 @@ -122,7 +122,7 @@ */ allocation = (caddr_t) mmap( startAddr - ,(int)size + ,size ,PROT_READ|PROT_WRITE ,MAP_PRIVATE ,devZeroFd