Try this, replace the variable "i" with "i2" or something else for this loop segment:

Code:

i2=0;
loop(dot_N,
dot_bypass[M*i2]<0 ? (
gfx_r=gfx_b=gfx_g=0.6; gfx_a=0.5;
gfx_x=dot_x[M*i2]; gfx_y=16; gfx_lineto(gfx_x,gfx_h-2,0);
gfx_x=76; gfx_y=dot_y[M*i2]; gfx_lineto(gfx_w-2,gfx_y,0);
gfx_a=1;
d=8*dot_ratio[M*i2];
gfx_x=dot_x[M*i2]-d-1; gfx_y=dot_y[M*i2]-d-1;
gfx_r=gfx_g=gfx_b=0;
gfx_rectto(dot_x[M*i2]+d+1,dot_y[M*i2]+d+1);
gfx_x=dot_x[M*i2]-d; gfx_y=dot_y[M*i2]-d;
gfx_r=dot_r[M*i2]; gfx_g=dot_g[M*i2]; gfx_b=dot_b[M*i2];
gfx_rectto(dot_x[M*i2]+d,dot_y[M*i2]+d);
gfx_y=dot_y[M*i2]-9; gfx_x+=5;
gfx_r=gfx_g=gfx_b=0;
gfx_drawnumber(i2+1,0); gfx_x+=3;
jj=0; while (
gfx_drawchar(dot_name[M*i2+jj]);
jj+=1;
dot_name[M*i2+jj]!=0 && jj<dot_namesize;
);
);
i2+=1;
);

I suspect because you used "i" to do some looping in a previous part of the code, it causes a problem here - as if the latter loop was using the previous loops "i". I've seen this myself doing js plugs, and using a different variable name always seemed to fix it. I can't explain why the problem happens though, just one of the many quirky things.

Hopefully that helps... really interesting plugin btw