There is another LPC debugging technique that provides a good supplement to the debug(x,y) macro provided by debug.h. Suppose that your object won't load and the logfile isn't specifying where the error is. You can use the #if 0 preprocessor directive to selectively temporarily remove suspect pieces of your code. Note that using #if 0 is much cleaner than commenting the code out using /* and */. One reason its cleaner is that it is possible to nest #if directives but not comments. Another reason is that you can add the code back simply by changing #if 0 to #if 1. Suppose you had the following function that was giving you problems: void xyz() { statement_1(); /* statement 1 does blah blah */ statement_2(); /* statement 2 does blah blah */ } Suppose you suspected that statement_2() was causing the error. You could temporarily remove that line by changed xyz to read: void xyz() { statement_1(); /* statement 1 does blah blah */ #if 0 statement_2(); /* statement 2 does blah blah */ #endif statement_3(); /* statement 3 does blah blah */ } Suppose that you had used comments instead of #if 0 to remove statement_2(). Suppose you tried it like this: /* statement_2(); /* statement 2 does blah blah */ */ This method would cause a compile error because of the nested comments. Therefore, it would have to look something like this: /* statement_2(); */ /* statement 2 does blah blah */ But this method is bad because its a royal pain to insert and remove comments within a line using the ed line editor (IMHO). --Truilkan@TMI