diff --git a/src/stream_cdf_o.c b/src/stream_cdf_o.c
index 20b024a460a5db353fb768982789fdfdf4e5074d..d99b57b903b4a3e241643dd13944231c8e08d369 100644
--- a/src/stream_cdf_o.c
+++ b/src/stream_cdf_o.c
@@ -57,6 +57,11 @@ cdfDefTimestep(stream_t *streamptr, int tsID)
       streamptr->ncmode = 2;
     }
 
+  if (streamptr->accessmode == 0)
+    {
+      cdfEndDef(streamptr);
+    }
+
   double timevalue = cdi_encode_timeval(taxis->vdatetime, &streamptr->tsteps[0].taxis);
   if (CDI_Debug) Message("tsID = %d  timevalue = %f", tsID, timevalue);