A359 I was just thinking that the poor documentation of the HP49 probably means that a lot of new users don't know about DBUG. It's a handy tool for looking into programming that doesn't work, or for checking stack syntax as you go. All this also applies to the HP48. It's in LS-PRG-NXT-NXT-RUN (HP49) or PRG-NXT-RUN (HP48). If you use it a lot, you could also assign << 41.1 MENU > to a key. The commands are: DBUG: start the debugging. SST: single-step through a program. If the program calls another, it's executed without stepping through it. SST-downarrow: single-step through a program, and also through another program called by the first. NEXT: see the next command in the program - it isn't executed until the next SST. HALT: If you press it during debugging, HALT appears on the command line. Enter will suspend debugging so you can do something else (to return, press LS-CONT), or Cancel will put you back into debugging. You can also use it to insert the word anywhere in a program. KILL: abandons debugging and turns off the Halt annunciator. To use it: 1. If the program requires any arguments, they should be on the stack. 2. Quote the program name to stack level one (eg, 'myprog'). It will also work with the entire program on level one. 3. Press DBUG. 4. To single-step, press SST, SST-downarrow, or NEXT. If you find the error or just want to exit, press KILL (or LS-CONT). Note that you can't single-step through an IFERR statement unless you put a HALT after IFERR. Using HALT in programs: if you can't find the error in a program, you can insert as many HALTs as you want. During execution, the program will stop at each halt and the HLT annunciator will come on. Press LS-CONT to continue. I'm sure somebody can add more to this.