Hi, you can't assume fuzzy scratch variables as used in def flex(text t) = % t is a list of pairs hide(n_:=0; for z=t: z_[incr n_]:=z; endfor dz_:=z_[n_]-z_1) z_1 for k=2 upto n_-1: ...z_[k]{dz_} endfor ...z_[n_] enddef; newinternal n_; pair z_[],dz_; to be official .. in mpxl we use names like temp_pair_z i.e. a temp_ namespace (as well as a mfun_ one) for all these potentially clashing short names you could do newinternal n_; pair z_[],dz_; at the top of your file (because we don't use them) but stil ... Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------