This feature has already been discussed in this group. The problem with it is how to determine if the file has been included before. For example, are foo.h and ../bar/foo.h the same? Is bar.h which is a link to foo.h is the same as foo.h?