Thanks for the reply.
The media my customer is using has been used for successfull burns already. The app runs continuously but the Nero side of things is only initialised, used and closed when neccessary.
I am using NeroAPI under C++ and Windows XP.
The burn process does not end, as I log the return code from NeroBurn into a log file, and there is no entry after the 'Checking Discs' log entry.
As I mentioned earlier the app builds a set of files to burn, the size of the set dependant upon the current disk info returned by NeroGetCDInfo. When the compilation is complete the app initilises Nero, (NeroAPIGlueConnect, NeroInit etc..).
The app then fills in an NERO_WRITE_CD structure, creates an ISO tree from the set of files, and then calls NeroBurn.
We tried restarting the app, which would have used the already compiled set of files, but the result was the same.
As a last resort I instructed the customer to clear the compiled set, which would force the app to rebuild it, and the burn was successfull.
I can see no reason why this should have worked as the files are simply copied from one location to another, to form the set, and the file size of the set that was failing was only 4.3Gb.
My question now would be, what exactly is Nero checking during the 'Checking discs' phase and, since it is a check, is there a chance that the check can fail and if so should NeroBurn be exited with an appropriate error code.