diff --git a/RTCP/Cobalt/InputProc/src/Station/generate.cc b/RTCP/Cobalt/InputProc/src/Station/generate.cc
index ca91c91a38caed7040d1ea34519c3def35952361..81a08b72fc948f7f251f64feed912cbab14f3bb6 100644
--- a/RTCP/Cobalt/InputProc/src/Station/generate.cc
+++ b/RTCP/Cobalt/InputProc/src/Station/generate.cc
@@ -104,14 +104,18 @@ int main( int argc, char **argv )
   for (size_t f = 0; f < ps.settings.antennaFields.size(); ++f) {
     const ObservationSettings::AntennaField& field = ps.settings.antennaFields[f];
 
+    // Distribute the fields round-robin over the MPI processes
+    if (static_cast<int>(f) % mpi.size() != mpi.rank())
+      continue;
+
     vector< SmartPtr<Stream> > outputStreams;
 
     for (size_t s = 0; s < field.inputStreams.size(); ++s) {
       const string& desc = field.inputStreams[s];
 
-      LOG_INFO_STR("Connecting to " << desc);
+      LOG_INFO_STR("Setting up stream to " << desc);
       outputStreams.push_back(createStream(desc, false));
-      LOG_INFO_STR("Connected.");
+      LOG_INFO_STR("Stream created to " << desc);
     }
 
     struct StationID stationID(field.name);