diff --git a/RTCP/Cobalt/CoInterface/src/StreamableData.h b/RTCP/Cobalt/CoInterface/src/StreamableData.h
index 567b7d0621ea7d5f4f450e2a34e25c462a04918a..97e8dc290b505002a9d6a1cdcc8e3bdd86b81b40 100644
--- a/RTCP/Cobalt/CoInterface/src/StreamableData.h
+++ b/RTCP/Cobalt/CoInterface/src/StreamableData.h
@@ -93,6 +93,11 @@ namespace LOFAR
         rawSequenceNumber = seqno;
       }
 
+      bool doReadWithSequenceNumber()
+      {
+        return readWithSequenceNumber;
+      }
+
       virtual void setDimensions(unsigned, unsigned, unsigned)
       {
       }
diff --git a/RTCP/Cobalt/GPUProc/src/Station/RSPRawSender.cc b/RTCP/Cobalt/GPUProc/src/Station/RSPRawSender.cc
index e57c092a556875fb87ed51f8e5b0b55d2b09a7d3..5159b2497c015430e7b4f03637106d8ee9a955bc 100644
--- a/RTCP/Cobalt/GPUProc/src/Station/RSPRawSender.cc
+++ b/RTCP/Cobalt/GPUProc/src/Station/RSPRawSender.cc
@@ -154,7 +154,7 @@ namespace LOFAR {
       unsigned nrSent = sockStream->sendmmsg(packets, packetSize, itsSentMsgSizes, MSG_CONFIRM);
       if (nrSent < nrPackets) { // don't check itsSentMsgSizes: resending remainders won't help with UDP (message oriented)
         itsNrDroppedPackets += nrPackets - nrSent;
-        LOG_WARN("RSPRawSender::trySend(): fewer sent to avoid blocking"); // not retried, not even in non-RT...
+        LOG_WARN("RSPRawSender::trySendUdp(): fewer sent to avoid blocking"); // not retried, not even in non-RT...
       }
     }
 
@@ -176,7 +176,7 @@ namespace LOFAR {
         unsigned nrSent = bytesSent / packetSize;
         unsigned partialPacketSent = bytesSent % packetSize;
         if (partialPacketSent != 0) {
-          LOG_WARN("RSPRawSender::trySend(): partial packet sent: will retry remainder later");
+          LOG_WARN("RSPRawSender::trySendByteStream(): partial packet sent: will retry remainder later");
           const char *data = (char *)iov[nrSent].iov_base + partialPacketSent;
           size_t size = packetSize - partialPacketSent;
           itsPendingData.resize(size);
@@ -185,7 +185,7 @@ namespace LOFAR {
         }
 
         itsNrDroppedPackets += nrPackets - nrSent;
-        LOG_WARN("RSPRawSender::trySend(): fewer sent to avoid blocking"); // not retried, not even in non-RT...
+        LOG_WARN("RSPRawSender::trySendByteStream(): fewer sent to avoid blocking"); // not retried, not even in non-RT...
       }
     }
 
diff --git a/RTCP/Cobalt/OutputProc/src/OutputThread.cc b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
index 46be2e737ac8bf661a51e574cdf3cba39541d3c5..088f656348d177daaf4fb27f87d91f5b6aef5be0 100644
--- a/RTCP/Cobalt/OutputProc/src/OutputThread.cc
+++ b/RTCP/Cobalt/OutputProc/src/OutputThread.cc
@@ -91,10 +91,10 @@ namespace LOFAR
     {
       // TODO: check for dropped data at end of observation
 
-      size_t droppedBlocks = data->sequenceNumber() - itsNextSequenceNumber;
-
       ASSERTSTR(data->sequenceNumber() >= itsNextSequenceNumber, "Received block nr " << data->sequenceNumber() << " out of order! I expected nothing before " << itsNextSequenceNumber);
 
+      size_t droppedBlocks = data->sequenceNumber() - itsNextSequenceNumber;
+
       const string streamNrStr = '[' + lexical_cast<string>(itsStreamNr) + ']';
 
       if (droppedBlocks > 0) {
@@ -106,7 +106,9 @@ namespace LOFAR
                         itsBlocksDropped * static_cast<float>(itsBlockDuration));
       }
 
-      itsNextSequenceNumber = data->sequenceNumber() + 1;
+      if (data->doReadWithSequenceNumber()) {
+        itsNextSequenceNumber = data->sequenceNumber() + 1;
+      } // else, droppedBlocks is useless, but itsBlocksWritten is still useful
       itsBlocksWritten++;
 
       itsMdLogger.log(itsMdKeyPrefix + PN_COP_DROPPING + streamNrStr,