Whats the failsafe?
as in:
SCAR Code:
if FindBitmapIn(log, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
MouseItem(1, true);
wait(200+random(200));
Mouse(x, y, 0, 0, true);
wait(BurnTime +random(500));
Inc(WoodBurned);
if FindText(x, y, 'ou can', SmallChars, 0, 440, 500, 458)then
begin
Dec(WoodBurned);
RunTo(rundir, false);
wait(1500+random(500));
end;
wait(250+random(250));
end;
if not FindBitmapIn(log, x, y, MIX1, MIY1, MIX2, MIY2) then
Otherwise it could be a problem in your mainloop?
since we aren't given then logout command its hard to see how to help (for me anyway)
but try adding
SCAR Code:
if FindBitmapIn(log, x, y, MIX1, MIY1, MIX2, MIY2) then
writeln('Found the log BMP');
begin
MouseItem(1, true);
writeln('Clicked tinderbox');
wait(200+random(200));
Mouse(x, y, 0, 0, true);
writeln('clicked burn logs');
wait(BurnTime +random(500));
Inc(WoodBurned);
if FindText(x, y, 'ou can', SmallChars, 0, 440, 500, 458)then
writeln('found text');
begin
Dec(WoodBurned);
RunTo(rundir, false);
writeln('running away');
wait(1500+random(500));
end;
wait(250+random(250));
end;
its a nooby way but it helps a lot, this way you can see where the function fails. Hopefully...
baring in mind ive been away for some time 
~Spaz