Is it harmless (for binary compatibility) to change typedef struct { int cat; /* category */ int isNull; union { int i; double d; } val; } dbCatVal; to typedef struct { int cat; /* category */ int isNull; union { int i; double d; dbString *s; dbDateTime *t; } val; } dbCatVal; ? Pointers should not take > 8 bytes (double) I believe. Radim