[please excuse if this is re-post. i don't think the first message made it] GCC generates some warnings when doing type conversions in places that I don't believe the warnings are required. It'd be be cool if someone could explain it to me. I have an example program here: http://manic.desrt.ca/const.c I'm guessing that, by the C standard, arrays that contain items of different types are always considered incompatible and since 'char *' and 'const char *' are different types then 'const char **' and 'char **' are incompatible pointers. This just doesn't seem very useful when one of the base types is always safe to automatically promote to the other (in this case, char * -> const char *) and there is no chance that an unnoticed conversion could ever occur in the other direction without generating another warning/error. Any feedback at all is appreciated -- many thanks. Cheers.