diff --git a/src/stream_cdf_i.c b/src/stream_cdf_i.c
index 5c7ec7c7c3690d28c5071ce4b564854497d5bd96..8dad4a7a772ec1aa01c14054634604daf82a7dd5 100644
--- a/src/stream_cdf_i.c
+++ b/src/stream_cdf_i.c
@@ -2962,7 +2962,7 @@ int cdf_define_all_zaxes(stream_t *streamptr, int vlistID, ncdim_t *ncdims, int
             }
 
           const int zaxisindex = vlistZaxisIndex(vlistID, zaxisID);
-  	  streamptr->zaxisID[zaxisindex] = zdimid;
+	  streamptr->zaxisID[zaxisindex] = zdimid >= 0 ? ncdims[zdimid].dimid : zdimid;
 
 	  if ( CDI_Debug )
 	    Message("zaxisID %d %d %s", zaxisID, ncvarid, ncvar->name);