Dan, Could you explain again why you don't want char* anywhere, and prefer void*? You answered this on language-dev, but went off on what seemed to be a tangent about encodings. Some ramblings of my own that may be confusing me, are: char* doesn't necessarily mean "a string". would typedef char byte (or) typedef char bytes make you happy? But still - why void*? I think that will make things harder to understand... having a generic type (which might initially be typedef void generic) might make things more understandable and allow for some typechecking. -R