Alright, i found the little problem, you see, the code above reads a line, and if there is a match in that line, delete it. and whethere or not there was a match the var is increased... but if we delete a line, we dont want to increase the var because the line that was just matched and deleted now contains a new value, and thats where the error would occur, but only if there was two consecutive matching lines in the file. the below code with a minor adjustment works fine:


on *:TEXT:!del*:%m.channel:{
set -l %m.quitter3 $nick
set -l %m.diderase. $+ %m.quitter3 0
set -l %m.loopedDe1 $+ %m.quitter3 1
set -l %m.filepath file.txt
while ([ [ $+(%,m.loopedDe1,%m.quitter3) ] ] <= $lines(%m.filepath)) {
set -l %m.loopedel.temp [ [ $+(%,m.loopedDe1,%m.quitter3) ] ]
set -l %m.trash3 $read(%m.filepath,%m.loopedel.temp)
if ($gettok(%m.trash3,3,32) == %m.quitter3) {
echo -s 4 %m.quitter3 found on line: %m.loopedel.temp
write -dl $+ %m.loopedel.temp %m.filepath
notice %m.quitter3 Erased from list > %m.trash3
set -l %m.diderase. $+ %m.quitter3 1
echo -s erased %m.quitter3 on request.
[color:blue] continue

}
inc %m.loopedDe1 $+ %m.quitter3 1
}
; while ends
if ([ [ $+(%,m.diderase.,%m.quitter3) ] ] == 0) { notice %m.quitter3 Didn't find an entry to erase. }
}

[/color]


The /continue command is placed inside the if statement because we know that if we match a line and delete it, we want to run the loop again without changing any variables(/help /continue for more info on this command)