If it's indeed an EOR/EOF issue, the problem will probably be somewhere in the timing and/or disc/play state management. This is relatively intricate code, as it's event driven. However, if you're sufficiently motivated, it should be possible to find and fix. I'd recommend reading the Green Book sec...