what Brian and Marius recommended is good programming practice (not mandatory to do so) to keep you away from same kind of problem ever. You just simply to make sure all your header file has following structure:
// all your header file content.
#endif // __XYZ_H__
then you can get rid of your problem. Use this structure to avoid multi-include header file has a term called "include guard", just like Brian and Marius mentioned. furthermore, there is no need to keep your guard something like __x_x_, it could be any string that valid to be a macro.