Sorry if I was unclear ... what I meant is if it's save to assume that the compiler does *unsigned* pointer arithmetics (when it comes to comparing pointers)? Or do I have to cast them as CARDINAL or similar? For a ring buffer, I need to know where the current position is, and where the head and tail is. So if these are signed comparison, there is a (theoretical) chance that a signed comparison would barf, no?