diff --git a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
index 52004bb85dcfcc0d5fd7afc190f4a8adf781fea5..d57c038002ea7c376cf599f9447a43b758c3d287 100644
--- a/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
+++ b/RTCP/Cobalt/OutputProc/src/MSWriterCorrelated.cc
@@ -24,6 +24,7 @@
 
 #include <sys/types.h>
 #include <fcntl.h>
+#include <cstdio>
 #include <boost/format.hpp>
 #include <boost/lexical_cast.hpp>
 
@@ -47,7 +48,8 @@ namespace LOFAR
 
     MSWriterCorrelated::MSWriterCorrelated (const std::string &logPrefix, const std::string &msName, const Parset &parset, unsigned subbandIndex)
       :
-      MSWriterFile(str(format("%s/table.f0data") % msName)),
+      // Write the data to a temporary file, until we have a MeasurementSet we can move it into.
+      MSWriterFile(str(format("%s-table.f0data") % msName)),
       itsLogPrefix(logPrefix),
       itsMSname(msName),
       itsParset(parset),
@@ -60,7 +62,7 @@ namespace LOFAR
 
       // Create Sequence file
       if (LofarStManVersion > 1) {
-        string seqfilename = str(format("%s/table.f0seqnr") % msName);
+        string seqfilename = str(format("%s-table.f0seqnr") % msName);
 
         try {
           itsSequenceNumbersFile = new FileStream(seqfilename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
@@ -73,7 +75,7 @@ namespace LOFAR
 
     void MSWriterCorrelated::init()
     {
-      // Creaate MeasurementSet
+      // Create MeasurementSet
 #if defined HAVE_AIPSPP
       MeasurementSetFormat myFormat(itsParset, 512);
 
@@ -81,6 +83,16 @@ namespace LOFAR
 
       LOG_DEBUG_STR(itsLogPrefix << "MeasurementSet created");
 #endif // defined HAVE_AIPSPP
+
+      // Move data file into the measurement set
+      if (rename(str(format("%s-table.f0data") % itsMSname).c_str(),
+                 str(format("%s/table.f0data") % itsMSname).c_str()) < 0)
+        THROW_SYSCALL(str(format("rename(%s-table.f0data, %s/table.f0data)") % itsMSname % itsMSname));
+
+      // Move sequence file into the measurement set
+      if (rename(str(format("%s-table.f0seqnr") % itsMSname).c_str(),
+                 str(format("%s/table.f0seqnr") % itsMSname).c_str()) < 0)
+        THROW_SYSCALL(str(format("rename(%s-table.f0seqnr, %s/table.f0seqnr)") % itsMSname % itsMSname));
     }
 
 
diff --git a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
index fdaae7cf6f00bbba545c436900048637bc2d6396..dac5383e4f9bc786cb312488b4408b48a60e3079 100644
--- a/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
+++ b/RTCP/Cobalt/OutputProc/src/MeasurementSetFormat.cc
@@ -126,7 +126,7 @@ namespace LOFAR
     {
       ScopedLock scopedLock(sharedMutex);
 
-      /// First create a valid MeasurementSet with all required
+      /// Create the MeasurementSet with all required
       /// tables. Note that the MS object is destroyed immediately.
       createMSTables(MSname, subband);
       /// Next make a metafile which describes the raw datafile we're
@@ -152,9 +152,12 @@ namespace LOFAR
         }
 
         SetupNewTable newtab(MSname, td, Table::New);
+
         LofarStMan lofarstman;
         newtab.bindAll(lofarstman);
 
+        // MSLofar() constructor needs a NEW table, to avoid checks
+        // for subtables that aren't yet there.
         itsMS = new MSLofar(newtab);
         itsMS->createDefaultSubtables(Table::New);
 
diff --git a/RTCP/Cobalt/OutputProc/test/tSubbandWriter.cc b/RTCP/Cobalt/OutputProc/test/tSubbandWriter.cc
index 527aa4449d43b970bddd193b074b8ff4c9c0eeaf..24eee255d26f1177dfccb76dfae7db337de33384 100644
--- a/RTCP/Cobalt/OutputProc/test/tSubbandWriter.cc
+++ b/RTCP/Cobalt/OutputProc/test/tSubbandWriter.cc
@@ -70,14 +70,14 @@ SUITE(SubbandWriter)
       ps.add("Observation.nrBeams",                                  "1");
       ps.add("Observation.Beam[0].subbandList",                      "[0]");
       ps.add("Observation.DataProducts.Output_Correlated.enabled",   "true");
-      ps.add("Observation.DataProducts.Output_Correlated.filenames", "[tWriter.out_raw]");
+      ps.add("Observation.DataProducts.Output_Correlated.filenames", "[tSubbandWriter.out_raw]");
       ps.add("Observation.DataProducts.Output_Correlated.locations", "[localhost:.]");
       ps.add("Cobalt.OutputProc.StaticMetaDataDirectory",            "tSubbandWriter.in_1");
       ps.updateSettings();
     }
 
     ~OneBeam() {
-      int dummy = system("rm -rf tWriter.out_raw");
+      int dummy = system("rm -rf tSubbandWriter.out_raw");
 
       (void)dummy; // satisfy compiler
     }
@@ -97,7 +97,6 @@ SUITE(SubbandWriter)
     {
 #     pragma omp section
       {
-        w.init();
         w.process();
       }
 
@@ -119,7 +118,7 @@ SUITE(SubbandWriter)
 
     // verify output
     {
-      FileStream f("tWriter.out_raw/table.f0data");
+      FileStream f("tSubbandWriter.out_raw/table.f0data");
 
       CorrelatedData data(ps.nrMergedStations(), ps.settings.correlator.nrChannels, ps.settings.correlator.nrSamplesPerIntegration(), heapAllocator, 512);
 
@@ -140,7 +139,6 @@ SUITE(SubbandWriter)
     {
 #     pragma omp section
       {
-        w.init();
         w.process();
       }
 
@@ -165,7 +163,7 @@ SUITE(SubbandWriter)
 
     // list failures BEFORE obs
     {
-      Table tab("tWriter.out_raw/LOFAR_ANTENNA_FIELD");
+      Table tab("tSubbandWriter.out_raw/LOFAR_ANTENNA_FIELD");
       ROArrayColumn<Bool> flagCol(tab, "ELEMENT_FLAG");
 
       if (flagCol.nrow() == 0) {
@@ -193,7 +191,7 @@ SUITE(SubbandWriter)
 
     // list failures DURING obs
     {
-      Table tab("tWriter.out_raw/LOFAR_ELEMENT_FAILURE");
+      Table tab("tSubbandWriter.out_raw/LOFAR_ELEMENT_FAILURE");
       ROTableRow row(tab);
 
 
@@ -216,7 +214,7 @@ SUITE(SubbandWriter)
 
 int main()
 {
-  INIT_LOGGER("tWriter");
+  INIT_LOGGER("tSubbandWriter");
 
   omp_set_nested(true);