Is there a reason to keep the cover functions in pthread.cc? These simply call "__" prefixed versions in thread.cc, where the real implementation is provided. For example: int pthread_attr_init (pthread_attr_t * attr) { return __pthread_attr_init (attr); } paul