I have changed the function CheckForDisk to - function CheckForDisk(writing: bool): Integer; This function tested fZipBusy but setting of this flag was moved (so it could be correctly reset on error), so I was wanted to make sure the function operated correctly (instead of testing fZipBusy it now tests the passed writing flag which is only true on the call in WriteSplit). In the next version, the ZipBusy property could be a test of ZipDllHandle thus : function GetZipBusy:bool begin Result := ZipDllHandle <> nil; end; this would then allow controlled use of the dll by multiple ZipMasters (the dll can only be loaded once per application). Russell Peters http://www.users.bigpond.com/russellpeters/delphizip.html