Just a thought: if your version of crypt.c has line that declares "L" and "R" to be arrays of size 32, your version is depending on L and R being allocated adjacent to each other. This is an ancient bug that no one ever bothers to fix. Try instead: char L[64]; #define R (L+32) That might fix things. Then again, maybe not. Tom Truscott