diff -r 4122176ea935 -r 56f325a607ea userlibandfileserver/fileserver/sfile/sf_thread.cpp --- a/userlibandfileserver/fileserver/sfile/sf_thread.cpp Mon Dec 21 16:14:42 2009 +0000 +++ b/userlibandfileserver/fileserver/sfile/sf_thread.cpp Wed Dec 23 11:43:31 2009 +0000 @@ -857,11 +857,18 @@ CDriveThread& self = *(CDriveThread*)aSelfP; TDrive& drive = TheDrives[self.iDriveNumber]; - if(drive.IsMounted() && drive.CurrentMount().LockStatus() == 0) - { - // Ignore the error here, as there's nothing we can do about it... - (void)drive.FinaliseMount(RFs::EFinal_RW); - } + if(drive.IsMounted()) + { + if (drive.CurrentMount().LockStatus() == 0) + { + // Ignore the error here, as there's nothing we can do about it... + (void)drive.FinaliseMount(RFs::EFinal_RW); + } + else + { + self.StartFinalisationTimer(); + } + } return KErrNone; }