   Bad bad VC++ 2003--Craziest error ever.
  I set a breakpoint here:Then I stepped over that line:Notice that the engine's scene pointer didn't change.  I have spawned no secondary threads.  How could this possibly happen?  It happens EVERY TIME!  I've tried rebuilding the project, but it doesn't help.~BenDilts( void );   
  what's the debugger watch say about this->m_pScene ?   ;  That's the simple m_pScene entry in the debugger.  this-> is implied, and when I put it in explicitly, it remains the same display.   ;  Try cleaning the project and recompiling it. VC probably got it's knickers in a twist regarding line numbers stored in the compiled code and the source.Mike.;  Do you have optimizations on?  If so this sort of thing is completely normal.Does the app crash or are you just complaining about the debugger not giving you the values you expect?  Assuming the latter then look at the disassembly around the problematic line of code.  You'll probably see that the code for the that line and the line after has been interleaved a bit which confuses the debugger.   ;  I second what MikeWW said, do a complete clean (perhaps even delete the build files manually) and rebuild.  I *really* doubt the compiler is stuffing up on something that simple, the line numbering is probably just screwed up.  Check the values changed by the lines around it and see what they're doing.   ;  Found it!The code you're looking at is the main executable calling into a statically linked .lib library.  The library was compiled with 1-byte struct alignment, the executable with 4-byte alignment.  I guess the compiler just doesn't give warnings for that type of thing.~BenDilts( void );   ;  interesting, something to look out for when real bizare things happen   ;Quote:Original post by BeanDogFound it!The code you're looking at is the main executable calling into a statically linked .lib library.  The library was compiled with 1-byte struct alignment, the executable with 4-byte alignment.  I guess the compiler just doesn't give warnings for that type of thing.~BenDilts( void );This leads to this rule of thumb: never change the default compiler settings when you can modify the behavior of the compiler using pragmas. I know they are not portable - but then you might be able to protect their use using conditional precompilation. If you have only one project, then it will not harm you. But you've just found that if you have more than one project then different compilation settings might break the whole stuff and produce hard to understand bugs. Regards,   