diff --git a/src/pio_client.c b/src/pio_client.c
index 4aaebcd6679b09972e780bc806555c3e311ab7db..e56f14b988fd579bfb47d68f963221d40d09a883 100644
--- a/src/pio_client.c
+++ b/src/pio_client.c
@@ -12,6 +12,9 @@
 #include "cdi.h"
 #include "cdi_int.h"
 #include "dmemory.h"
+#ifdef HAVE_LIBGRIB
+#include "gribapi.h"
+#endif
 #include "namespace.h"
 #include "taxis.h"
 #include "vlist.h"
@@ -375,7 +378,6 @@ cdiPioClientStreamNOP(stream_t *streamptr)
 static void
 cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted)
 {
-  (void) recordBufIsToBeDeleted;
   int streamID = streamptr->self;
   int clientRank = commInqRankModel(), numClients = cdiPioCommInqSizeClients(), numColl = commInqSizeColl(),
       collRank = cdiPioCollRank(clientRank, numClients, numColl);
@@ -401,6 +403,13 @@ cdiPioClientStreamClose(stream_t *streamptr, int recordBufIsToBeDeleted)
     }
   if (needsFlush) cdiPioClientStreamWinPost(streamID);
   cdiPioClientStreamWinDestroy(streamID);
+  if (recordBufIsToBeDeleted) switch (streamptr->filetype)
+      {
+#ifdef HAVE_LIBGRIB
+      case CDI_FILETYPE_GRB:
+      case CDI_FILETYPE_GRB2: gribContainersDelete(streamptr); break;
+#endif
+      }
 }
 
 static void