Not only is MID$ not buggy, it is also very forgiving. This does not apply to the example posted, but it's worth mentioning other languages will error out if the range given is not within the length of the string. I just thought I'd parse that along.
I was also wondering if the OP was thinking the third argument would cut the string at the 42nd character, instead of include 42 characters following the value of the second argument, 34. I mean if he was looking of a result of: _930 AM he needed to subtract the start time from the end time as in: timeString$ = Mid$(lineToPrint$, startTime, endTime - startTime)
Pete