I generally find it problematic to put variable declarations (as opposed to definitions) into header files. The tricks suggested about using #ifdef... are really just to trick the compiler into accepting a generally ill-advised way of writing code. My suggestion is to declare your global variables in the source file where they are originally created, not in a header file, and then every other source file that needs access to the global variables needs to use extern. For these other source files, they can #include a GlobalVars.h file that simply contains all of the necessary extern statements for the global variables. The main source file does not #include GlobalVars.h, as it is the file that is declaring them. The advantage to this approach is that variables (and the access to them) is not hidden through a set of #include, #define, and #ifdef statements. You are writing exactly what you want in a straightforward way that will be less prone to error and easier to understand. While it makes no difference to the compiler, it will be more understandable to anyone reading the code. Dave "You can say that again." -- Dept. of Redundancy Dept.