I'm not seeing your error on first look.
Add a whole bunch of MEASSAGE commands to trace problem.
MESSAGE start M93
put at begginning of M93
MESSAGE handle macro
put at beginning of macro
see what you learn. The idea is to trace down problem to one or two lines.