diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index 14e9520bde1b16d7022bd5eee560f44a347ab09a..805329a0d6bcfc6f52178febec685d2a4057ab5a 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -423,8 +423,8 @@ namespace LOFAR
 
       if (itsParset.settings.realTime) {
         try {
-          rspRawParset.writeFile(path + ".parset");
           itsWriter = new MSWriterFile(path);
+          rspRawParset.writeFile(path + ".parset"); // relies on (recursive) mkdir by MSWriterFile()
 
           // The rest of the system doesn't know about RSP raw data output, but if monitoring did, enable this:
           //logInitialStreamMetadataEvents("RSPRaw", fileName, directoryName);
@@ -433,8 +433,8 @@ namespace LOFAR
           itsWriter = new MSWriterNull(itsParset);
         }
       } else { // don't handle exception in non-RT: it is fatal: avoid rethrow for a clean stracktrace
-        rspRawParset.writeFile(path + ".parset");
         itsWriter = new MSWriterFile(path);
+        rspRawParset.writeFile(path + ".parset"); // relies on (recursive) mkdir by MSWriterFile()
 
         // The rest of the system doesn't know about RSP raw data output, but if monitoring did, enable this:
         //logInitialStreamMetadataEvents("RSPRaw", fileName, directoryName);