Chris Torek has pointed out that the listing in DDJ is probably missing a tilde, and thus that >#define INTMASK (long) ((unsigned) (0)) should be >#define INTMASK (long) ((unsigned) (~0)) and that seems right to me. Thanks, Chris. David MacKenzie edf at rocky2.rockefeller.edu