diff --git a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp
index c062532e4e059d8938811cf467354f6c4184afd7..b0a8204a1eb3213f70817d947a3c507aa909cccb 100644
--- a/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp
+++ b/src/xercesc/util/Platforms/Solaris/SolarisPlatformUtils.cpp
@@ -239,13 +239,13 @@ FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName
 {
     const char* tmpFileName = XMLString::transcode(fileName, manager);
     ArrayJanitor<char> janText((char*)tmpFileName, manager);
-    return (FileHandle)open( tmpFileName , O_WRONLY | O_CREAT | O_LARGEFILE, 0666);
+    return (FileHandle)open( tmpFileName , O_WRONLY | O_CREAT | O_TRUNC | O_LARGEFILE, 0666);
 }
 
 FileHandle XMLPlatformUtils::openFileToWrite(const char* const fileName
                                              , MemoryManager* const manager)
 {
-    return (FileHandle)open( fileName , O_WRONLY | O_CREAT | O_LARGEFILE, 0666);
+    return (FileHandle)open( fileName , O_WRONLY | O_CREAT | O_TRUNC | O_LARGEFILE, 0666);
 }
 
 unsigned int