I just realized that I forgot to mention that __pthread_acquire was called by __pthread_alt_lock, and that it is passing a pointer that has a 4 byte offset from whatever was passed as the first argument to __pthread_alt_lock. John