diff --git a/DAQ/DAQSys/scripts/mdfdump.py b/DAQ/DAQSys/scripts/mdfdump.py
index 3da984a2e16efc5f129cc71d10cc91c1442a09b6..1b07b46bb83dc76948a99c1f924395bc4adb52af 100755
--- a/DAQ/DAQSys/scripts/mdfdump.py
+++ b/DAQ/DAQSys/scripts/mdfdump.py
@@ -16,6 +16,7 @@ from pprint import pformat
 import cppyy
 import cppyy.ll
 import GaudiPython
+import numpy as np
 from DDDB.CheckDD4Hep import UseDD4Hep
 from PRConfig.TestFileDB import test_file_db
 
@@ -74,7 +75,11 @@ def events(appmgr):
 
 def _RawBank_bytes(self):
     """Return the RawBank payload as a bytes object."""
-    data = bytes(self.range[cppyy.gbl.std.byte]())
+    data = bytes(
+        np.frombuffer(
+            self.range[cppyy.gbl.std.byte]().data(), dtype=np.uint8, count=self.size()
+        )
+    )
     assert len(data) == self.size()
     return data
 
@@ -82,9 +87,7 @@ def _RawBank_bytes(self):
 def _RawBank_padding(self):
     """Return the padding bytes in a raw bank."""
     full_data_size = self.totalSize() - self.hdrSize()  # incl. padding bytes
-    data = cppyy.ll.cast["std::byte*"](self.data())
-    data.reshape((full_data_size,))
-    data = bytes(data)
+    data = bytes(np.frombuffer(self.data(), dtype=np.uint8, count=full_data_size))
     return data[self.size() :]