In order to gain the benefits of the enums, errno would need to be an enum errno_t or some such. This breaks C++ code that sets errno = 0, since you can't assign integers to errno values. So even if you retained EBOGUS or whatever, this wouldn't work with C++. errno has to be an int to work there. Warner