Hi Peter, Please keep in mind that -O1 enables a lot of optimizations. Some of those optimizations can be disabled using a -f switch. To view the -f flags enabled by -O1 use this handy tip: gcc -fverbose-asm -H -x c <(echo '') -O1 -S -o O1.s You can then try disabling the -f optimizations until you find your culprit. Divide & conquer would be the fastest way to zero in on the problem optimization. CAVEAT, not all optimizations enabled by -O1 have a command-line toggle flag to disable them. Also important to know, that with -O0 no optimizations are performed, regardless of the -f flags enabled. The -O0 squelches all optimzations. If no optimization level is explicitly specified, -O0 is the default. So I don't think your "enabling optimizations flag-by-flag" had the results you were looking for. HTH, --Eljay