diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index d5193bdad8d..06b8936e825 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -373,10 +373,12 @@ bool FileSaver::finalize() return FileSaverBase::finalize(); SaveFile *sf = static_cast(m_file); - if (m_hasError) - sf->rollback(); - else + if (m_hasError) { + if (sf->isOpen()) + sf->rollback(); + } else { setResult(sf->commit()); + } delete sf; m_file = 0; return !m_hasError;