Here is a little snippet of code I've been using as a test (please ignore my poor/messy scripting):

elseif ($1 == GET) && ($2 == /banner.gif) {
set -u0 %ghanakingif1 0
set -u0 %ghanakingif2 $file(banner.gif).size
while (%ghanakingif1 < %ghanakingif2) {
bread banner.gif %ghanakingif1 8192 &test $+ %ghanakingif1
sockwrite $sockname &test $+ %ghanakingif1
set -u0 %ghanakingif1 $calc(%ghanakingif1 + 8192)
}
}

If I use a small image (8192 or smaller basicly) it works absolutly fine, however if I use a larger image I get random results. Sometimes no errors in mIRC but only a piece of the image displays. Sometimes the same thing but with the "queue would exceed 16384 bytes" error.