diff --git a/MAC/Services/TBB/TBBClient/lib/tbbbuslistener.py b/MAC/Services/TBB/TBBClient/lib/tbbbuslistener.py
index 4040b375b29c207034d1c92ee26c3dece7623f9a..b4890189a7bea811575f0e6b2e43fc81fb5a32ac 100644
--- a/MAC/Services/TBB/TBBClient/lib/tbbbuslistener.py
+++ b/MAC/Services/TBB/TBBClient/lib/tbbbuslistener.py
@@ -55,6 +55,10 @@ class TBBBusListener(AbstractBusListener):
                 self.onDataWritersStarted(msg.content)
             elif msg.subject == '%sDataWritersFinished' % self.subject_prefix:
                 self.onDataWritersFinished(msg.content)
+            elif msg.subject == '%sDataWritersStopping' % self.subject_prefix:
+                self.onDataWritersStopping(msg.content)
+            elif msg.subject == '%sDataWritersStopped' % self.subject_prefix:
+                self.onDataWritersStopped(msg.content)
             else:
                 logger.error("TBBBusListener.handleMessage: unknown subject: %s",  msg.subject)
         except Exception as e:
@@ -86,6 +90,16 @@ class TBBBusListener(AbstractBusListener):
         :param msg_content: dictionary with the info on which datawrited started on which host/port'''
         pass
 
+    def onDataWritersStopping(self, msg_content):
+        '''onDataWritersStopping is called upon receiving a DataWritersStopping message.
+        :param msg_content: '''
+        pass
+
+    def onDataWritersStopped(self, msg_content):
+        '''onDataWritersStopped is called upon receiving a DataWritersStopped message.
+        :param msg_content: dictionary with the info on which datawrited Stopped on which host/port'''
+        pass
+
 
 def main():
     from lofar.common.util import waitForInterrupt
diff --git a/MAC/Services/TBB/TBBClient/lib/tbbservice_rpc.py b/MAC/Services/TBB/TBBClient/lib/tbbservice_rpc.py
index 779300ec922443c801a1eeef9869889b3c25c701..fd5fba61ef6917b6f413dbee06ef74e55001ec3e 100644
--- a/MAC/Services/TBB/TBBClient/lib/tbbservice_rpc.py
+++ b/MAC/Services/TBB/TBBClient/lib/tbbservice_rpc.py
@@ -20,6 +20,12 @@ class TBBRPC(RPCWrapper):
         logger.info("Received start datawriter request result %s" % result)
         return result
 
+    def stop_datawriters(self):
+        logger.info("Requesting stop of tbb data writers...")
+        result = self.rpc('stop_datawriters')
+        logger.info("Received stop datawriter request result %s" % result)
+        return result
+
     def switch_firmware(self, stations, mode):
         logger.info("Requesting switch of tbb firmware on stations '%s' to mode '%s' ..." % (stations, mode))
         result = self.rpc('switch_firmware', stations, mode)
diff --git a/MAC/Services/TBB/TBBServer/lib/tbbservice.py b/MAC/Services/TBB/TBBServer/lib/tbbservice.py
index 34395207cdb63b704407154e525b4d577eb391cc..2e84f5a69681d8f5b8e298e31a9264fd49d45f62 100644
--- a/MAC/Services/TBB/TBBServer/lib/tbbservice.py
+++ b/MAC/Services/TBB/TBBServer/lib/tbbservice.py
@@ -250,7 +250,6 @@ class TBBControlService:
         :param timeout:  Timeout in seconds until data writers will be
         forcefully killed.  The default is 24 hours. 
         '''
-        self._send_event_message('WaitingForDataWriters', {})
         start = datetime.utcnow()
         while self.procs:
             logger.info('waiting for %d datawriters to finish...', len(self.procs))
@@ -268,7 +267,7 @@ class TBBControlService:
             if datetime.utcnow() - start >= timeout:
                 logger.warning('timeout while waiting for %d more datawriters...', len(self.procs))
                 self.stop_datawriters()
-        self._send_event_message('WaitingForDataWritersFinished', {})
+        self._send_event_message('DataWritersFinished', {})
 
     def stop_datawriters(self):
         '''Stop TBB datawriters running on CEP4 and notify when done'''
@@ -279,6 +278,11 @@ class TBBControlService:
             del self.procs[node]
         self._send_event_message('DataWritersStopped', {})
 
+        # also call 'normal' wait_for_datawriters method,
+        # which has no datawriter to wait for anymore...
+        # but as a result, it sends a 'DataWritersFinished' event.
+        self.wait_for_datawriters()
+
     def switch_firmware(self, stations, mode):
         """
         Command TBBs to switch to one of two firmwares:  sub-band mode or raw voltage mode.