diff -r 4843bb5893b6 -r 8b094906a049 mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp --- a/mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp Fri Mar 12 15:46:41 2010 +0200 +++ b/mtpfws/mtpfw/datatypes/src/cmtptypefile.cpp Mon Mar 15 12:43:12 2010 +0200 @@ -526,7 +526,11 @@ if (aMode & EFileWrite) { iFileOpenForRead = EFalse; - User::LeaveIfError(iFile.Replace(aFs, aName, aMode|EFileWriteDirectIO)); + TInt err = iFile.Create(aFs, aName, aMode|EFileWriteDirectIO); + if (err != KErrNone) + { + User::LeaveIfError(iFile.Replace(aFs, aName, aMode|EFileWriteDirectIO)); + } } else { @@ -559,7 +563,11 @@ if (aMode & EFileWrite) { iFileOpenForRead = EFalse; - User::LeaveIfError(iFile.Replace(aFs, aName, aMode|EFileWriteDirectIO)); + TInt err = iFile.Create(aFs, aName, aMode|EFileWriteDirectIO); + if (err != KErrNone) + { + User::LeaveIfError(iFile.Replace(aFs, aName, aMode|EFileWriteDirectIO)); + } } else {